メモ帳に似たシンプルなテキスト エディターを作成しています。ユーザーが を押すと、時刻と日付がファイルに挿入されますF5。ニーモニックとアクセラレータについて閲覧しましたが、それぞれAltおよび と組み合わせて使用されCtrlます。
を使用する必要がありますか、EventListener
それとも他の解決策はありますか?
メモ帳に似たシンプルなテキスト エディターを作成しています。ユーザーが を押すと、時刻と日付がファイルに挿入されますF5。ニーモニックとアクセラレータについて閲覧しましたが、それぞれAltおよび と組み合わせて使用されCtrlます。
を使用する必要がありますか、EventListener
それとも他の解決策はありますか?
いくつかのコメントで部分的に既に述べたように、推奨されるアプローチは
いくつかのコード:
Action doLog = new AbstractAction("Dummny log!") {
@Override
public void actionPerformed(ActionEvent e) {
LOG.info("doing: " + getValue(Action.NAME));
}
};
doLog.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke("F5"));
JMenu menu = new JMenu("dummy");
menu.add(doLog);
frame.getJMenuBar().add(menu);
次のように aKeyBinding
を追加できます。JMenuItem
Action sayHello = new AbstractAction() {
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(null,"Hello World, From JMenuItem :)");
}
};
jMenuItem.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("F5"),"sayHello");//4.The WHEN_IN_FOCUSED_WINDOW input maps of all the enabled components in the focused window are searched.
jMenuItem.getActionMap().put("sayHello",sayHello);
参考文献: