Как захватить ключевые события - PullRequest
0 голосов
/ 20 января 2012

Все примеры для ключевых слушателей, которые я смог найти, касаются других компонентов, помимо основной панели, таких как текстовое поле или Меню.Я знаю, как использовать setMnemonic для программирования горячих клавиш меню, но этот метод, по-видимому, недоступен, и ссылка на руководство по созданию списка ключей оракула не работает.Когда я щелкаю правой кнопкой мыши> События> Клавиша> Нажатие клавиши в главной форме, я получаю следующее, но ни одна из клавиш не вызывает mainPanelKeyPressed. Как правильно использовать события клавиш для запуска действия, независимого от фокуса?

mainPanel.addKeyListener(new java.awt.event.KeyAdapter() {
    public void keyPressed(java.awt.event.KeyEvent evt) {
        mainPanelKeyPressed(evt);
    }
});

private void mainPanelKeyPressed(java.awt.event.KeyEvent evt) {
    // Added to help find the ID of each 'arrow' key
    JOptionPane.showMessageDialog(null, "mainPanelKeyPressed"); 
}

Ответы [ 2 ]

5 голосов
/ 20 января 2012

Как правильно использовать ключевые события для запуска действия, независимого от фокуса?

См .: Как использовать привязки клавиш

Или используйте JMenuBar с меню и пунктами меню.

0 голосов
/ 22 января 2012

фокус важен.вам может потребоваться щелкнуть вокруг и поэкспериментировать, и использовать component.requestFocusInWindow () для помощи.

...