Горячая клавиша Java JOptionPane.showConfirmDialog - PullRequest
4 голосов
/ 25 января 2011

Я показываю диалог подтверждения в Java, используя JOptionPane.showConfirmDialog.В диалоговом окне отображается подтверждение «да нет» для пользователя.Это называется следующим образом:

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

Вопрос в том, что это простое подтверждение, может ли пользователь нажать y для да и n для нет?В настоящее время пользователь должен нажимать на кнопки?

Спасибо,

Andez

Ответы [ 4 ]

6 голосов
/ 14 сентября 2012

Существует еще одна более простая возможность: вы можете нажать 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();

поведение точно такое же, как вы хотели ...

2 голосов
/ 25 января 2011

Нет, но вы можете создать свой собственный JDialog, который мог бы сделать это.

2 голосов
/ 25 января 2011

У вас уже есть «горячие клавиши» (мнемоника) для кнопок: Alt + Y для «Да» и Alt + N для "Нет".

Вы также можете нажать Tab для переключения между ними и Пробел для нажатия.

0 голосов
/ 06 февраля 2015
...