JOptionPane.YES_OPTION == ENTER on each button

Oleg  Beat picture Oleg Beat · May 1, 2012 · Viewed 8.9k times · Source

I have a option dialog like this:

String[]  options = ["Yes", "No"]; //button names

int n = JOptionPane.showOptionDialog(singleFrameService.getFrame(),
        "Some Question?",
        "",
        JOptionPane.YES_NO_OPTION,
        JOptionPane.QUESTION_MESSAGE,
        null,     //do not use a custom Icon
        options,  //the titles of buttons
        options[0]); //default button title

//if press yes
if (n == JOptionPane.YES_OPTION){
    //make some if pressed Yes
}

When I used mouse and press Yes/No - all work fine... But when I start use keyboard, press TAB to go to "No" button, and then press ENTER - work "Yes" option

Answer

Mitch Connor picture Mitch Connor · Jun 4, 2013

This will make the uimanager handle the focused button. This will allow you to use both enter or space to select the focused button.

UIManager.put("Button.defaultButtonFollowsFocus", Boolean.TRUE);