我有一个
然后我将它添加到一个按钮和ActionMap中。
但是当我使用F1键时,它会显示:
Action
。SampleAction a = new SampleAction("foo", null);
然后我将它添加到一个按钮和ActionMap中。
JButton b = new JButton(a);
b.getActionMap().put("bar", a);
b.getInputMap().put(KeyStroke.getKeyStroke("F1"), "bar");
我在Action中添加了一个跟踪代码(System.out.println("Action [" + e.getActionCommand() + "] performed!");
)。当我用鼠标点击按钮时,它显示如下:
Action [foo] performed!
但是当我使用F1键时,它会显示:
Action [null] performed!
为什么?
class SampleAction extends AbstractAction
{
public SampleAction(String text, Icon icon) {
super(text, icon);
}
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("Action [" + e.getActionCommand() + "] performed!");
}
}
SimpleAction
类,发布一个SSCCE? - David Kroukamp