Я получил этот код, чтобы определить, нажимает ли пользователь кнопку ctrl + A:
mPanel.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_A, InputEvent.CTRL_DOWN_MASK), "ALL");
mPanel.getActionMap().put("ALL", new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("All");
}
});
к сожалению, метод никогда не вводится.
В настоящее время я не знаю, чего мне не хватает.
Не могли бы вы помочь мне?
Там три InputMap
для компоновщика
JComponent.WHEN_IN_FOCUSED_WINDOW
JComponent.WHEN_FOCUSED
JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT
Когда вы просто вызываете getInputMap
без аргумента, это подразумевает
getInputMap(JComponent.WHEN_FOCUSED)
Поэтому вы должны использовать getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW)
getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW)
. В настоящее время с тем, что у вас есть, компонент должен быть сфокусирован.