我得到此代码以确定用户是否按下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");
}
});
不幸的是,方法永远不会进入。
目前我不知道自己错过了什么。
你能帮帮我吗?
答案 0 :(得分:3)
compoent有三个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)