Для какого компонента я должен добавить KeyListener?

У меня есть графический интерфейс.

Этот класс GUI расширяет JFrame.

В верхней части экрана есть JLabel с текстом.

В центре экрана находится JPanel, и к этой JPanel были добавлены n x n JButton.

Мне нужен KeyListener, чтобы реагировать, если я нажимаю клавишу.

Для какого компонента (JFrame, JLabel, JPanel, JButtons) я должен добавить KeyListener для нормальной работы моей программы?

2 ответа

Решение

Для какого компонента я должен добавить KeyListener?

  • Вы можете использовать Keylistener для (обозначен)

    1. доисторический компонент AWT (Swing на основе AWT)

    2. более 3-х нажатых клавиш одновременно или для определения порядка

    3. но тогда для Swing JComponents лучше использовать KeyEventDispatcher или AWTEventListener (оба реагируют на сигналы с клавиатуры)

  • в противном случае используйте привязки клавиш (например, Swing JComponents использует привязки клавиш внутри)

JFrame был бы самым умным выбором, учитывая, что он является предком высшего уровня, и вы сможете избежать проблем с фокусировкой. Однако, если вы скажете, что должны были реализовать JTextField, тогда было бы необходимо добавить список ключей в JTextField, потому что фокус отвлекается от параллельных компонентов, чтобы использовать возможность ввода в поле.

Другие вопросы по тегам