2011-01-25 141 views
4

我使用JOptionPane.showConfirmDialog在Java中显示确认对话框。该对话框向用户显示是否确认。这被称为如下:Java JOptionPane.showConfirmDialog热键

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

的问题是,因为这是一个简单的确认,可以在用户按下Ÿ为yes和ñ为没有?目前用户必须点击按钮?

感谢,

Andez

回答

2

你已经拥有 “热键”(助记符)的按钮:Alt键 + Ÿ为 “是”,Alt键 + ñ为“无”。

您也可以点击标签在它们之间切换和空间按。

+0

谢谢。我想我现在可以忍受这一点。 – Andez 2011-01-25 12:42:56

2

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

+0

我以为我可能不得不。我认为使用Alt + Y作为违规建议现在就足够了。 – Andez 2011-01-25 12:43:32

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(); 

的行为完全一样,只要你想...