我尝试的一件事是简单地从menuSelected(…)方法中调用setSelected(false),但这有副作用.例如,菜单似乎没有被选中,而另一方面,它不能一直工作.
一个可行的解决方案是取消选择Swing Timer中的菜单.就像是:
@Override
public void menuSelected(MenuEvent mEvt) {
// show JOptionPane
// if yes selected, exit.
// Otherwise...
final JMenu menu = (JMenu) mEvt.getSource();
new Timer(200, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
menu.setSelected(false);
((Timer)e.getSource()).stop();
}
}).start();
}