を持っていますAction
SampleAction a = new SampleAction("foo", null);
次に、それを Button と ActionMap に追加します
JButton b = new JButton(a);
b.getActionMap().put("bar", a);
b.getInputMap().put(KeyStroke.getKeyStroke("F1"), "bar");
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!");
}
}