在摇摆动作事件中实现CTRL_MASK



我这里一定错过了什么,但我无法弄清楚为什么InputEvent.CTRL_DOWN_MASKInputEvent.CTRL_MASK工作?

我正在尝试做的是实现一种让 Ctrl-C 在 Swing GUI 中发出命令的方法。我正在使用以下代码:

  myTextArea.getInputMap(JComponent.WHEN_FOCUSED).put(
      KeyStroke.getKeyStroke((char) 'c', /***/InputEvent.CTRL_DOWN_MASK/***/), "ctrl");
  myTextArea.getActionMap().put("ctrl", new AbstractAction() {
    @Override
    public void actionPerformed(ActionEvent e) {
      System.out.println("test");
    }
  });

请注意InputEvent.CTRL_DOWN_MASK。当我把它放在那里时,这个动作永远不会被执行。当我注释掉它时,该操作有效(但我只按下小写的"c"按钮。不是控制。

我是否缺少有关如何真正将CTRL_MASK用于摇摆键事件的内容?

我是否错过了如何真正使用CTRL_MASK进行秋千的东西 关键事件?

  • 你必须把这个参数放在InputMap

例如 inputMap.put(KeyStroke.getKeyStroke(myKey, InputEvent.CTRL_DOWN_MASK), someName);

这对我来说看起来很正确,但请尝试

KeyStroke.getKeyStroke(KeyEvent.VK_C, InputEvent.CTRL_DOWN_MASK);

而不是

KeyStroke.getKeyStroke((char) 'c', InputEvent.CTRL_DOWN_MASK);

也就是说,不要依赖char值的int解释来传递键代码;使用Java提供的"虚拟键盘"常量。

最新更新