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

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



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



isFocused и isActive также true
  • Вопрос задан
  • 5800 просмотров
Решения вопроса 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 и куда именно нажимаете кнопки?
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Хабаровск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽
11 мая 2024, в 00:19
1000 руб./за проект
10 мая 2024, в 23:51
30000 руб./за проект
10 мая 2024, в 23:33
2500 руб./за проект