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

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

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



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



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

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

Похожие вопросы
ITK academy Казань
от 75 000 ₽
ИТРУМ Ростов-на-Дону
от 75 000 ₽
СофтМоушен Санкт-Петербург
от 150 000 до 220 000 ₽