Для виджетов Swing привязка клавиш должна выполняться через InputMap
и ActionMap
(хотя «устаревший» registerKeyboardAction
проще). См. Привязки клавиатуры в Swing в старом соединении Swing и документы JComponent
API.
Pluggable Look & Feel скорее мешает отображению входных событий на действия. То, что происходит с ActionEvent
, зависит от текущего PL & F. Код приложения, непосредственно регистрирующий KeyListener
, обычно не является хорошей идеей в Swing. Некоторые компоненты состоят из других меньших компонентов, то есть InputEvent
s может передаваться или не передаваться. Входные события могут интерпретироваться для выполнения более чем одной операции. Вообще все это беспорядок.