KeyListener + ActonListener на JButton - Java

Узнай цену своей работы

Формулировка задачи:

Здравствуйте) Столкнулся с такой проблемой: не получается одновременно обрабатывать события с клавиатуры и нажатия на кнопки JButton. То есть сначала замечательно работает KeyListener, добавленный на JFrame, обрабатывает нажатия с клавиатуры, но как только я нажимаю на элемент JButton, срабатывает её ActionListener, кнопка становится в фокусе и больше JFrame на нажатия клавиатуры не реагирует. На кнопку ActionListener устанавливаю:
public void setButtonNewGameListener(ActionListener action){
        bNewGame.addActionListener(action); // bNewGame is object JButton type
}
ActionListener передаю лямбда-функцией. KeyListener добавляется на JFrame, внутри которого лежит JPanel, содержащая кнопку. Есть ли какой-нибудь способ снять фокус с кнопки и вернуть его на JFrame или возможно ли как-то обрабатывать нажатия с клавиатуры независимо от фокуса?

Решение задачи: «KeyListener + ActonListener на JButton»

textual
Листинг программы
Component.requestFocus()

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.556 из 5