JOptionPane default selection

Hi,
I am using a JOptionPane to offer some selections to the user.
I am trying to set the last button as the default, but it always seems to use the first button as the default.
My code goes like this:-
Object[] options = {"Print Applet", "Print List", "Export to File", "Cancel"};
int selection = JOptionPane.showOptionDialog(null, "Choose Option or Cancel", "Export Options",
JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, null,
options, options[3]);
I want Cancel button to be default, but Print Applet is!
Any ideas?
Cheers
Sue

Works for me (see attached sample working code). You may be confusing the default button with the button that has focus. The default button is the button that responds to the Enter key press anywhere in the dialog (visually it's the button with the darker border). In your case that button is the Cancel button. However the Print Applet button has the focus (it's the button with the focus rectangle around the button's text. Pressing the spacebar will trigger an action on that button).
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
public class Option {
public static void main(String args[]) {
  new OptionFrame();
class OptionFrame extends JFrame implements ActionListener {
JButton open = new JButton("Open...");
OptionFrame() {
  super();
  /* Components should be added to the container's content pane */
  Container cp = getContentPane();
  cp.add(open);
  open.addActionListener(this);
  /* Add the window listener */
  addWindowListener(new WindowAdapter() {
   public void windowClosing(WindowEvent evt) {
    dispose(); System.exit(0);}});
  /* Size the frame */
  setSize(200,200);
  /* Center the frame */
  Dimension screenDim = Toolkit.getDefaultToolkit().getScreenSize();
  Rectangle frameDim = getBounds();
  setLocation((screenDim.width - frameDim.width) / 2,(screenDim.height - frameDim.height) / 2);
  /* Show the frame */
  setVisible(true);
public void actionPerformed(ActionEvent evt)
  Object obj = evt.getSource();
  if (obj == open)
   Object[] options = {"Print Applet", "Print List", "Export to File", "Cancel"};
   int selection = JOptionPane.showOptionDialog(null, "Choose Option or Cancel", "Export options",
                                                                 JOptionPane.YES_NO_CANCEL_OPTION,
                                                                 JOptionPane.QUESTION_MESSAGE, null, options,
                                                                 options[3]);
}

Similar Messages

  • How to set the default selected option as NO_OPTION in a JoptionPane

    This is just an example program to create the same scenario in the project.When clicked on OK button, it will pop up a JOptionPane confirm dialog with YES-NO buttons.I want to set the default selected button as NO button. In the below program, the keyboard focus is set on NO button, but in the look and feel the selection is still YES button. Can anyone suggest a solution to make both the focus on NO button?
    public class Test extends JPanel implements ActionListener{
         Test() {
              JButton btn = new JButton("OK");
              this.add(btn);
              btn.addActionListener(this);
         public void actionPerformed(ActionEvent e) {
              Object[] o = {"Yes", "No"};
              JOptionPane p = new JOptionPane("Are u sure?",JOptionPane.QUESTION_MESSAGE,JOptionPane.YES_OPTION,null,o,null);
              //p.setWantsInput(false);
              p.setInitialSelectionValue(o[1]);
              try {
                   UIManager.setLookAndFeel(new MetalLookAndFeel());
              } catch (UnsupportedLookAndFeelException e1) {
                   // TODO Auto-generated catch block
                   e1.printStackTrace();
              //p.setFocusCycleRoot(false);
              p.setInitialValue(o[1]);
         //p.getRootPane().getDefaultButton().requestFocusInWindow();
              UIManager.put("Button.defaultButtonFollowsFocus", Boolean.FALSE);
              p.createDialog(this, "").setVisible(true);
              if(p.getValue() == o[0]) {
                   System.out.println("yes");
              }else if(p.getValue() == o[1]) {
                   System.out.println("no");
              //p.setWantsInput(true);
              //p.showConfirmDialog(this, "Are u sure?");
              //p.setInitialSelectionValue(new Integer(JOptionPane.NO_OPTION));
         public static void main(String[] args) {
              Test t = new Test();
              JFrame f = new JFrame();
              f.getContentPane().add(t);
              f.pack();
              f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              f.setSize(500, 500);
              f.setVisible(true);
         }

    not sure what you're trying to do, but try this
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    class Test extends JPanel implements ActionListener
      Test()
        JButton btn = new JButton("OK");
        this.add(btn);
        btn.addActionListener(this);
      public void actionPerformed(ActionEvent e)
        Object[] o = {"Yes", "No"};
        int value = JOptionPane.showOptionDialog(null,"Are u sure?","",-1,-1,null,o,o[1]);
        if(value == 0) System.out.println("yes");
        else if(value == 1) System.out.println("no");
      public static void main(String[] args)
        UIManager.put("Button.defaultButtonFollowsFocus", Boolean.TRUE);
        Test t = new Test();
        JFrame f = new JFrame();
        f.getContentPane().add(t);
        f.pack();
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setSize(500, 500);
        f.setVisible(true);
    }

  • How can I pre-define the default selection in a SelectOneChoice?

    How can I pre-define the default selection in a SelectOneChoice?
    (1) Here's my JSF-code:
    <af:selectOneChoice label="#{res['usercreate.input.sex']}"
    value="#{bindings.Sex.inputValue}"
    binding="#{SelectListBean.sexlist}"
    readOnly="false" autoSubmit="false">
    <af:selectItem label="#{res['data.sex.women']}" value="1"/>
    <af:selectItem label="#{res['data.sex.man']}" value="2"/>
    </af:selectOneChoice>
    (2): manged bean: to set the default value to be the first in the list, my managed bean as follows:
    import oracle.adf.view.faces.component.core.input.CoreSelectOneChoice;
    public class MBSListBean {
    private CoreSelectOneChoice sexlist;
    public MBSListBean() {
    public void setSexlist(CoreSelectOneChoice sexlist) {
    this.sexlist = sexlist;
    this.sexlist.setValue(1);
    public CoreSelectOneChoice getSexlist() {
    return sexlist;
    (3) when i launch the page, it often gives me such warnings:
    WARNUNG: Could not find selected item matching value "1" in CoreSelectOneChoice[UIXEditableFacesBeanImpl, id=_id7]
    how to solve the problem ?
    Thanks,
    wzzdx

    You could also set the default on your entity or viewobject, in the properties of your attribute.

  • How to hide  some fields in default selection screen in hr abap

    Hi experts,
    I have created default selection screen,in that in the Period option I wants display only 'Today'.
    And in the selection criteria i wants to display personnel number,companycode,personnelsubarea,employee status and instead of payroll area i wants to display 'Org unit'.please tell me step by step procedure,that could be greate helpfull.
    Thanks in advance,
    mohan

    use this logic to display only today in the period option
    **Local constants
       CONSTANTS:
              c_0                   VALUE  '0'  ,
              c_089     TYPE char3  VALUE  '089',
              c_091     TYPE char3  VALUE  '091',
              c_095     TYPE char3  VALUE  '095',
              c_097     TYPE char3  VALUE  '097'.
                     At Selection Screen
    at selection-screen output.
    LOOP AT screen.
          IF
               screen-group4 = c_089 OR
               screen-group4 = c_091 OR
               screen-group4 = c_095 OR
               screen-group4 = c_097  .
          screen-active = c_0.
          MODIFY SCREEN.
         ENDIF.
      ENDLOOP.

  • How to change default selection in compensation planning

    Hi experts,
    We have upgraded our portal to EHP1 sp04.
    I need to change the default selection which it currently shows in "Employee Selection" under
    Compensation Planning-->Compensation Planning.
    When a user clicks on Compensation Planning>Compensation PLanning> he comes in an iview with 4 steps:
    There is one "Employee Selection" scroll down view, I need the default to be "Direct Reports"
    http://rapidshare.com/files/308150359/DirectReports.jpg
    The default it shows is "Employees from organizational units", I need to change it to "Direct reports". Can someone tell me how I should proceed about it.
    Please guide me
    Regards,
    Rajat Sharma

    Hi,
    I have solved this issue.
    Go into SPRO>integration with other sap system>business packages>mysaperp>organizational structure view
    group organizational structure view.
    select mss_ecm_sel and change the nos. accordingly.
    thanks,
    Rajat

  • Logical database EQI (equipment)  .. I dont want to use the default selecti

    i am using Logical database EQI (equipment)  its realated to PM module.....
    i dont want to use the default selection screen.
    instead i want to process my own selection screen inputs..
    (ie..) i want to fetch the data using the GET event using my  own selection screen  inputs.
    my selection screen inputs is   equipmentnumber (equnr)
    and  the output list : 1.equnr      "equipment number
                                  2.shtxt       "Equipment Description
                                  3.tplnr        "Functional Location
                                  4.pltxt        "Functional Location Description
                                  5.qmnum    "Notification Number 
                                  6.qmtxt      "Notification Description
                 and  so on  ..........             
    how to do this ... can any one give sample code... or logic

    Hi Victor,
    I have a simple solution for this.i think it will help you.Do u have any idea about query designer in SAP.
    by using it we can satisfy u r  reuqirement.follow the below steps.
    1)Go to SQ01
    2)In the screen click on QuickViewer option.then you will go to another screen.
    3)In that screen give any name starting with 'Z' in the QuickView box and then click on create.
    4)In the dialogbox enter title and comments and then select LogicalDatabase as the DATASOURCE and give DataSourceLogicalDatabase as EQI.check the radio button Basis Mode and then click on ok.
    5)then on the screen in the first half of leftside you will  get another screen with the columns DATAFIELDS,LISTFIELDS,SELECTIONFIELDS,TECHNICALNAME.
    6)In the DATAFIELDS column expand the tree,then u can see the fields what we have,and what you want.and also you can see the check boxes in front of the columns LISTFIELDS,SELECTIONFIELDS.
    7)LISTFIELDS means the output fields,SELECTIONFIELDS means the selection screen fields(equnr).
    check the checkboxes as per u r requirement and click on execute.
    8)then a progam will be created.to know the program name after executing the program GO TO
    SYSTEM->STATUS.then u can see the program name there.
    If u know all these,let me know so that i can try for another solution.
    Thanks,
    N.K.C

  • How to change the text in default selection screen

    Hi,
      I have created the default selection screen(using PNP Logical database) ,In that I wants to display 'Data Selection Period' instead of 'Period'.
    Please send me the related code.
    Thanks in advace
    mohan

    HR Logical Database is PNP
    Main Functions of the logical database PNP:
    Standard Selection screen
    Data Retrieval
    Authorization check
    To use logical database PNP in your program, specify in your program attributes.
    Standard Selection Screen
    Date selection
    Date selection delimits the time period for which data is evaluated. GET PERNR retrieves all records of the relevant infotypes from the database. When you enter a date selection period, the PROVIDE loop retrieves the infotype records whose validity period overlaps with at least one day of this period.
    Person selection
    Person selection is the 'true' selection of choosing a group of employees for whom the report is to run.
    Sorting Data·
    The standard sort sequence lists personnel numbers in ascending order.
    · SORT function allows you to sort the report data otherwise. All the sorting fields are from infotype 0001.
    Report Class
    · You can suppress input fields which are not used on the selection screen by assigning a report class to your program.
    · If SAP standard delivered report classes do not satisfy your requirements, you can create your own report class through the IMG.  
    regards
    vinod

  • Hiding some fields in default selection screen in hr abap created by pernr

    Hi experts,
    I have created default selection screen,in that in the Period option I wants display only 'Today'.
    And in the selection criteria i wants to display personnel number,companycode,personnelsubarea,employee status and instead of payroll area i wants to display 'Org unit'.please tell me step by step procedure,that could be greate helpfull.
    Thanks in advance,
    mohan

    hi mohan,
    try this
       **Local constants
       CONSTANTS:
              c_0                   VALUE  '0'  ,
              c_089     TYPE char3  VALUE  '089',
              c_091     TYPE char3  VALUE  '091',
              c_095     TYPE char3  VALUE  '095',
              c_097     TYPE char3  VALUE  '097'.
                     At Selection Screen
    at selection-screen output.
    LOOP AT screen.
          IF
               screen-group4 = c_089 OR
               screen-group4 = c_091 OR
               screen-group4 = c_095 OR
               screen-group4 = c_097  .
          screen-active = c_0.
          MODIFY SCREEN.
         ENDIF.
      ENDLOOP.

  • Input box on default selection screen

    Hi,
       how to create an input box on the default selection screen which will accept only 1275 characters.
      Can u please help me?
    Thanks in Advance,
    Sreekala.

    Hi Sreekala,
    You need to use the  CL_GUI_TEXTEDIT for creating the box, also you need use the dialog program for that.
    For more info on that class check this
    Usage of CL_GUI_TEXTEDIT
    Text box on selection screen
    Hope they helps you.
    Regards!

  • How to set the default selection to "Select All" in a Multi valued parameter in SSRS 2008?

    Hello Everyone,
    How to set the default selection  to "Select All" in a Multi valued parameter in SSRS 2008?
    Regards
    Gautam S
    Regards

    You need to specify "Default Values" in the report parameter property. Choose similar option used in the "Available Values" option, this will allow the parameter to check "Select All".
    Regards, RSingh

  • How to Display key/text in default selection screen?

    HI Gururs,
    I want to display key/text in variable default selection screen in BI Analyzer in Quality.
    please give me any suggestions to resolve this.
    Thanks
    vadlamudi

    hi,
    What i have done is in the cube level, in the dimensions i have made specific properties and set to key/text in development, so its working fine in development of the analyzer, but still its showing text only in quality analyzer.
    please give me the solutions if you know any.
    regards
    vadlamudi

  • How to get the default selection color from JTable

    Hi, there,
    I have a question for how to get the default selection color from JTable. I am currently implementing the customized table cell renderer, but I do want to set the selection color in the table exactly the same of default table cell renderer. The JTable.getSelectionBackgroup() did not works for me, it returned dark blue which made the text in the table unreadable. Anyone know how to get the window's default selection color?
    Thanks,
    -Jenny

    The windows default selection color is dark blue. Try selecting any text on this page. The difference is that the text gets changed to a white font so you can actually see the text.
    If you don't like the default colors that Java uses then use the UIManager to change the defaults. The following program shows all the properties controlled by the UIManager:
    http://www.discoverteenergy.com/files/ShowUIDefaults.java
    Any of the properties can be changed for the entire application by using:
    UIManager.put( "propertyName", value );

  • How to set default selection in html:radio

    hai
    how to set default selection in <html:radio>.

    No it won't help.
    You can't set a value into an <input type="file"> control at all. The user has to put values in themselves.
    The reason behind this is security. If the programmer could put any value they liked in there, you could upload any file at all from a users computer without their intervention. eg C:\windows\system32\passwords.txt
    Bottom line: you can't put a default value into the input type="file" control.
    And a good thing too ;-)

  • PDF as default selection for Select printing cotrol (for Web)

    Hi
    Can someone point me to righ direction? What we are trying to do is, in Infoview, set PDF as default selection for "Select printing Control (for Web)", so that each user does not have to do this in preferences in infoview.
    Is it possible to do so? If yes, how?
    Thank you
    Regards
    IMS

    Take a look for a .vbs sample that synchs the ADMINISTRATOR preferences to all users on the BOE platform.
    You can schedule this as a PROGRAM OBJECT in InfoView so that it runs on a regular schedule to apply the change to new users.

  • Hiding some fields in default selection screen in hr abap

    Hi Experts,
      I am new to hr abap.I have created default selection screen by using LDB .in that i wants to display only the personnel number field.
    could any help me how to hide further selections,sort order and search helps at top of screen.
    thanks in advace,
    mohan

    use
    at slection-screen output.
    loop at screen.
    if screen-name = 'PNPBUKRS'. (example)
    screen-active = '0'.
    endif.
    modify screen.
    endloop.
    ==========================
    u can do it as group wise also.
    loop at screen.
    if screen-group1 = 'group name'.  (could be group1,2,3,4)
    screen-active = '0'.
    endif.
    modify screen.
    endloop.
    ====================
    Hi,
    Can u tell me which LDB and report category u are using so that i will send u the code as per the req.
    If the above code suits to ur req. pls reward the points.
    Regards
    eswar

Maybe you are looking for

  • How can I get my iPod Touch 5G recognized in iTunes 11.0.2?

    I got the iPod Touch 5 recently and I could not wait to put my favorite music in there so i plugged it to my MacBook Pro and for some reason, it doesn't recognize it on iTunes 11.0.2. But it is only recognized in iPhoto. If someone could please help

  • Currency error while creating a bex query?

    Hi all, I am trying to create a query using multi provider. I am getting the amount display along with the word ERROR suffixed after it. for instance: 2,850.32 ERROR 32,225.53 ERROR 6,639.45 ERROR 200.00 ERROR I have fixed it by using NODIM()  in the

  • Need Help, Upgrade or Not? Do I just WANT or really NEED a new Macbook Pro?

    Good day everyone, I love these forums, so much valuable input and information from you all. My question is, *should I upgrade* to a new 13" early 2011 Macbook Pro, from my present computer, an early 2008 white Macbook 4.1 with 4gig RAM, 180g SSD Ver

  • S-10 netbook problem

    OK, I wiped the OS and re-installed a fresh copy of WIN7 starter (32 bit) on my little Lenovo. Downloaded all the latest drivers and software. Now, it keeps telling me " turn on wireless capability " , when I try to connect to the net. I have : -pres

  • ROWID in Raptor - Question

    Hi, Just a quick question. When I select the rowid from sqlplus, I get AAAF8AAAFAAAAGIAAA , however, when I select the same row from Raptor, I am getting this - oracle.sql.ROWID@cfd22a. Why is this difference? Is there any setting that I need to/can