我想对<>键使用键绑定,然后在我的JFrame上使用它。

我正在使用以下代码尝试将其用于

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错误,其余代码都可以。

如何获取按键的按键?

最佳答案

根据the documentationgetKeyStroke(char):

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

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

以前,您使用的是String。寻找和 getKeyStroke(java.lang.String) 的文档:

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

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

07-27 13:34