Задать вопрос

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

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



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



isFocused и isActive также true
  • Вопрос задан
  • 5842 просмотра
Подписаться 2 Оценить 5 комментариев
Помогут разобраться в теме Все курсы
  • Нетология
    Java-разработчик с нуля
    12 месяцев
    Далее
  • Skillbox
    Java-разработчик
    8 месяцев
    Далее
  • ProductStar
    Профессия: Java-разработчик
    9 месяцев
    Далее
Решения вопроса 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 и куда именно нажимаете кнопки?
Ответ написан
Ваш ответ на вопрос

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

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