Java JOptionPane.showConfirmDialog热键

时间:2011-01-25 12:06:12

标签: java swing shortcut joptionpane

我正在使用JOptionPane.showConfirmDialog在Java中显示一个确认对话框。该对话框向用户显示“是否确认”。这称为如下:

int result = JOptionPane.showConfirmDialog(sessionObjects.getActiveComponent(), 
                 "Are you sure you want to exit?", "My App", JOptionPane.YES_NO_OPTION);

问题是,这是一个简单的确认,用户可以按 y 表示是和 n 表示否?目前用户必须点击按钮?

谢谢,

Andez

4 个答案:

答案 0 :(得分:6)

还有一个更简单的可能性:您可以在程序中按 alt 然后以相同的方式释放它:

public static void pressAlt(){
    try {
        Robot r = new Robot();
        r.keyPress(KeyEvent.VK_ALT);
    } catch (AWTException ex) {
        Logger.getLogger(ManualDetection.class.getName()).log(Level.SEVERE, null, ex);
    }
}

public static void releaseAlt(){
    try {
        Robot r = new Robot();
        r.keyRelease(KeyEvent.VK_ALT);
    } catch (AWTException ex) {
        Logger.getLogger(ManualDetection.class.getName()).log(Level.SEVERE, null, ex);
    }
}

然后当你打电话:

 pressAlt();
 int confirm = JOptionPane.showConfirmDialog(... bla bla bla ... 
                                                  ,JOptionPane.YES_NO_OPTION);
 releaseAlt();

行为完全一样,正如你所希望的那样......

答案 1 :(得分:2)

您已经为按钮设置了“热键”(助记符): Alt + Y 表示“是”和 Alt + N 表示“否”。

您也可以点击 Tab 在它们之间切换,然后按 Space

答案 2 :(得分:2)

不,但你可以创建自己的JDialog来做到这一点。

答案 3 :(得分:0)