2011-01-25 94 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(); 

的行爲完全一樣,只要你想...