Я зарегистрировал привязки клавиш к кнопке, и я хотел бы реагировать на все числовые нажатия клавиш. Я мог регистрировать различное событие для каждого ключа (0-9), но это глупо. Так можно ли обрабатывать все это в одном случае?Как настроить привязки клавиш, которые обрабатывают все числовые штрихи в одном событии?
Вот мой код, который реагирует только на кнопку 0 на цифровой клавиатуре:
private void setKeyBindings() {
AbstractAction aa = new AbstractAction() {
@Override
public void actionPerformed(ActionEvent ae) {
System.out.println("Here");
}
};
this.editButton.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_NUMPAD0, 0), "0");
this.editButton.getActionMap().put("0", aa);
}
Благодаря
Отличный ответ, @camickr. Компиляция, как есть, проста в реализации. – DSlomer64
Это предполагает, что у вас есть кнопка для возврата «Action» и привязки клавиш с помощью;) – MadProgrammer
@MadProgrammer, вам не нужна кнопка. Я изменил код, чтобы продемонстрировать добавление привязки к панели кнопок. Работает с кнопкой или без кнопки, добавленной в панель. Команда действия будет содержать символ с клавиатуры. – camickr