4

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

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

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

谢谢,

安德斯

4

4 回答 4

7

还有另一种更简单的可能性:您可以按下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();

行为是完全一样的,如你所愿......

于 2012-09-14T13:15:45.933 回答
2

您已经有按钮的“热键”(助记符):Alt+Y表示“是”,Alt+N表示“否”。

您也可以点击Tab在它们之间切换并Space按下。

于 2011-01-25T12:10:25.957 回答
2

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

于 2011-01-25T12:10:51.447 回答
0

看看停止自动对话框关闭

于 2015-02-06T18:48:16.167 回答