每个按钮上的JOptionPane.YES_OPTION == ENTER

Ole*_*eat 4 java swing joptionpane

我有一个像这样的选项对话框:

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
}
Run Code Online (Sandbox Code Playgroud)

当我使用鼠标并按是/否 - 一切正常...但是当我开始使用键盘时,按TAB转到"否"按钮,然后按ENTER键 - 工作"是"选项

Mit*_*nor 11

这将使uimanager处理聚焦按钮.这将允许您使用输入或空格来选择聚焦按钮.

UIManager.put("Button.defaultButtonFollowsFocus", Boolean.TRUE);
Run Code Online (Sandbox Code Playgroud)


JB *_*zet 9

这一切都取决于外观'A feelik,AFAIK.在L&F中,"输入"表示"按默认按钮"(即"是").可以通过按空格键来按下聚焦按钮.

  • 我明白那个.我所说的"输入"表示"按*默认*按钮".这与"按*聚焦*按钮"不同.要按*focus*按钮,请使用空格键. (2认同)