我制作了自定义JComboBox
。为此,我使用的是包含JPopupMenu
的{{1}}。但显然JCheckBoxMenuItem
PopupMenuListener
在popupMenuWillBecomeInvisible
更改之前正在运行。任何想法如何解决?
我不想将监听器添加到JCheckBoxMenuItem
。
JCheckBoxMenuItem
答案 0 :(得分:3)
一个“可能”的解决方案与kludge相比,是使用您的popupMenuWillBecomeInvisible(...)
,但将状态检查排队到Swing事件队列中,以便在事件队列中当前所有项目都具有之后执行其操作完了。但是,这并不能保证有效。
@Override
public void popupMenuWillBecomeInvisible(PopupMenuEvent e) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
System.out.println(i1.isSelected());
System.out.println(i2.isSelected());
System.out.println(i3.isSelected());
}
});
}