【问题标题】:Combined key's pressed with ActionBinding使用 ActionBinding 按下组合键
【发布时间】:2015-02-11 13:18:43
【问题描述】:

我得到这个代码来识别用户是否按下 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");
        }
    });

不幸的是,该方法从未被输入。

目前我不知道我错过了什么。

你能帮帮我吗?

【问题讨论】:

  • getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW)。目前,您所拥有的组件需要得到关注。

标签: java swing key-bindings key-events


【解决方案1】:

组件有三个InputMap

当只是在没有参数的情况下调用getInputMap,它隐含暗示

getInputMap(JComponent.WHEN_FOCUSED)

所以你应该使用getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-09
    • 1970-01-01
    • 2022-07-29
    • 1970-01-01
    相关资源
    最近更新 更多