Я продолжаю видеть, что вместо KeyListeners я должен использовать Key Bindings. Поэтому я нашел эту страницу: Key Bindings. Я прочитал его и попытался его реализовать.Java KeyBindings: Как это работает?
Action numPressed = new AbstractAction() {
public void actionPerformed(ActionEvent e) {
System.out.println("hi");
}
};
this.getInputMap().put(KeyStroke.getKeyStroke("1"), "released");
this.getActionMap().put("released", numPressed);
Я решил просто посмотреть, что произойдет. Класс, в котором он находится, расширяет JPanel. Раньше я использовал this.setFocusable(true)
. Однако я ничего не вижу, когда я печатаю «1». Что я делаю не так? Как должны выполняться ключевые привязки?
Ok, но я уже использовал метод 'setFocusable (истина)'. Разве это не даст фокус панели? – Justin
Я пробовал это, кажется, не работает – Justin
@gangqinlaohu Когда я подключил этот код в Eclipse, он сказал мне, что мне нужно переопределить 'actionPerformed'. Может быть, это сработает. – syb0rg