JMenuItemのセットを自動的に生成し、右クリックイベントごとにJPopUpMenuに追加します。問題は、選択したメニューでEnterキーを押しても、メニュー項目に設定したアクションが実行されないことです。上/下キーを使用してメニューをナビゲートできますが、アクションはマウスクリックでのみ実行されます。
メニュー項目を作成するためのコードは次のとおりです。
private JMenuItem createMenuItem(TaskFactory tf, String title, boolean useCheckBoxMenuItem, String toolTipText) {
enter code hereJMenuItem item;
PopupAction action = new PopupAction(tf, title);
if ( useCheckBoxMenuItem )
item = new JCheckBoxMenuItem(action);
else
item = new JMenuItem(action);
item.setEnabled(tf.isReady());
item.setToolTipText(toolTipText);
return item;
}
private class PopupAction extends AbstractAction {
TaskFactory tf;
PopupAction(TaskFactory tf, String title) {
super( title );
this.tf = tf;
}
public void actionPerformed(ActionEvent ae) {
m_view.manager.execute(tf.createTaskIterator());
}
}
フォーカス可能をtrueに設定しようとしましたが、うまくいきませんでした。Mac 10.7、Javaバージョン1.6.0_33、UbuntuJavaバージョン1.6.0_26で試してみました。標準のスイングルックアンドフィールを使用しました。Macで実行している場合:ルックアンドフィールは[MacOSXのアクアルックアンドフィール-com.apple.laf.AquaLookAndFeel]