我想对<
和>
键使用键绑定,然后在我的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 documentation的getKeyStroke(char)
:
返回一个KeyStroke的共享实例,该实例表示指定字符的KEY_TYPED事件。
KeyStroke.getKeyStroke('<');
KeyStroke.getKeyStroke('>');
以前,您使用的是String。寻找和
getKeyStroke(java.lang.String)
的文档:解析字符串并返回KeyStroke。该字符串必须具有以下语法:
此方法具有复杂的语法。单个字母有效,但是特殊字符不遵循语法。
getKeyStroke(char)
简单得多。您应该改用它。