我会自动生成一组 JMenuItem 并将它们添加到每个右键单击事件的 JPopUpMenu 中。问题是当我在所选菜单上按回车键时,我为菜单项设置的操作没有运行。我可以使用向上/向下键在菜单上导航,但是,该操作只能通过鼠标单击来运行。
这是创建菜单项的代码:
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());
}
}
我试过将focusable设置为true,但这没有用。我已经在 Mac 10.7、Java 版本 1.6.0_33 和 Ubuntu Java 版本 1.6.0_26 上进行了尝试。我使用了标准的挥杆外观。在 Mac 上运行时:外观是[Mac OS X 的 Aqua 外观 - com.apple.laf.AquaLookAndFeel]