我有一个与F键(F1,F2等)有关的问题。我想要为F键添加操作,并且希望在一个事件中处理所有操作。这就是为什么我想使用getActionCommand方法,但它总是返回null。然而,如果我使用数字键盘上的按键,它可以按预期工作。谢谢。
不起作用的F键代码:
private void setKeyBindings() {
AbstractAction numberAction = new AbstractAction() {
@Override
public void actionPerformed(ActionEvent ae) {
System.out.println(ae.getActionCommand());
}
};
InputMap inputMap = this.editButton.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
for (int i = 1; i < 13; i++)
{
String text = String.valueOf(i);
inputMap.put(KeyStroke.getKeyStroke("F" + text), text);
this.editButton.getActionMap().put(text, numberAction);
}
}
工作的数字键盘代码:
private void setKeyBindings() {
AbstractAction numberAction = new AbstractAction() {
@Override
public void actionPerformed(ActionEvent ae) {
System.out.println(ae.getActionCommand());
}
};
InputMap inputMap = this.editButton.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
for (int i = 0; i < 10; i++)
{
String text = String.valueOf(i);
inputMap.put(KeyStroke.getKeyStroke("NUMPAD" + text), text);
this.editButton.getActionMap().put(text, numberAction);
}
}