将Java中的ALT键与ActionMap匹配

时间:2019-02-27 11:51:03

标签: java

我有一个JTextArea,我想在按ALT键时触发一条消息。 这是与ALT不匹配的代码,我也不知道为什么。

JTextArea jtf1 = new JTextArea();
jtf1.getInputMap().put(KeyStroke.getKeyStroke(18, 0), "handleGS");
jtf1.getActionMap().put("handleGS", new AbstractAction() {
    @Override
    public void actionPerformed(java.awt.event.ActionEvent e) {
        System.err.println("Found");
    }
});

1 个答案:

答案 0 :(得分:0)

ALT键似乎是一个掩码,因此您必须将其用作修饰符。

我是这样工作的:

JTextArea jtf1 = new JTextArea();
jtf1.getInputMap().put(
  KeyStroke.getKeyStroke(KeyEvent.VK_ALT, InputEvent.ALT_DOWN_MASK), 
  "handleGS"
);
jtf1.getActionMap().put("handleGS", new AbstractAction() {
  public void actionPerformed(java.awt.event.ActionEvent e) {
    System.err.println("Found");
  }
});