По какой причину KeyListener не реагирует на нажатия клавиш? Java Swing?

Странный баг, временный. То есть то он есть, то его нет. То всё ОК работает, то после пары перезапусков, окно перестает отвечать на нажатия клавиш.



При этом,isFocusable == true, элементы JMenuBar доступны, работают. А вот на нажатия клавиш окно ни в какую не реагирует.



isFocused и isActive также true
  • Вопрос задан
  • 5822 просмотра
Решения вопроса 1
BrightGenie
@BrightGenie
можно повесить обработку отдельных сочетаний на окно и всех его потомков:

getRootPane().registerKeyboardAction(actionListener, «cancel», KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0),
JComponent.WHEN_IN_FOCUSED_WINDOW);

Правда в Документации написано, что метод устарел и вместо этого нужно использовать комбинацию:

component.getInputMap().put(aKeyStroke, aCommand);
component.getActionMap().put(aCommmand, anAction);
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
barker
@barker
Действительно, на что именно вы повесили KeyListener и куда именно нажимаете кнопки?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы