4

メモ帳に似たシンプルなテキスト エディターを作成しています。ユーザーが を押すと、時刻と日付がファイルに挿入されますF5。ニーモニックとアクセラレータについて閲覧しましたが、それぞれAltおよび と組み合わせて使用​​されCtrlます。

を使用する必要がありますか、EventListenerそれとも他の解決策はありますか?

4

3 に答える 3

5

いくつかのコメントで部分的に既に述べたように、推奨されるアプローチは

  • アクションを使用して menuItem を構成する
  • アクセラレータでアクションを構成する
  • アクションをメニューに追加する

いくつかのコード:

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);
于 2012-08-20T11:13:26.670 に答える
4

次のように 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);

参考文献:

于 2012-08-19T20:25:22.697 に答える