Для какого компонента я должен добавить KeyListener?
У меня есть графический интерфейс.
Этот класс GUI расширяет JFrame.
В верхней части экрана есть JLabel с текстом.
В центре экрана находится JPanel, и к этой JPanel были добавлены n x n JButton.
Мне нужен KeyListener, чтобы реагировать, если я нажимаю клавишу.
Для какого компонента (JFrame, JLabel, JPanel, JButtons) я должен добавить KeyListener для нормальной работы моей программы?
2 ответа
Для какого компонента я должен добавить KeyListener?
Вы можете использовать Keylistener для (обозначен)
доисторический компонент AWT (Swing на основе AWT)
более 3-х нажатых клавиш одновременно или для определения порядка
но тогда для Swing JComponents лучше использовать KeyEventDispatcher или AWTEventListener (оба реагируют на сигналы с клавиатуры)
- в противном случае используйте привязки клавиш (например, Swing JComponents использует привязки клавиш внутри)
JFrame был бы самым умным выбором, учитывая, что он является предком высшего уровня, и вы сможете избежать проблем с фокусировкой. Однако, если вы скажете, что должны были реализовать JTextField, тогда было бы необходимо добавить список ключей в JTextField, потому что фокус отвлекается от параллельных компонентов, чтобы использовать возможность ввода в поле.