获取KeyStroke"<"和">"

时间:2014-06-16 14:50:06

标签: java swing

我想使用<&amp;的键绑定>个密钥,然后在我的JFrame上使用它。

我正在使用以下代码尝试获取&lt;键。

KeyStroke testStroke = KeyStroke.getKeyStroke("<"); 
mainJFrame.getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW)
                        .put(testStroke, "clickButton");
mainJFrame.getRootPane().getActionMap().put("clickButton", new AbstractAction() {
        @Override
        public void actionPerformed(ActionEvent e) {
            System.out.println("PRESS!!!!");
        }
});

我无法让它发挥作用。但是,如果我使用像A

这样的键,它会很好用
KeyStroke testStroke = KeyStroke.getKeyStroke("A"); 

所以我认为KeyStroke是错的,其余的代码都没问题。

如何获得键的按键&lt; &安培; &gt;?

1 个答案:

答案 0 :(得分:5)

根据getKeyStroke(char)的{​​{1}}:

  

返回KeyStroke的共享实例,该实例表示指定字符的KEY_TYPED事件。

KeyStroke.getKeyStroke('<');
KeyStroke.getKeyStroke('>');

之前,您使用的是String。查看the documentation的文档:

  

解析字符串并返回KeyStroke。该字符串必须具有以下语法:

此方法具有复杂的语法。一个字母有效,但是一个特殊的字符并不遵循语法。 getKeyStroke(char)更加简单。你应该改用它。