Joo*_*kka 10 swing jpopupmenu jcheckbox
我想JCheckBoxMenuItem在一个中使用s JPopupMenu.它可以工作,但问题是当选中或取消选中复选框项时,弹出菜单会消失.因此,如果想要检查/取消选中多个项目,则需要重复启动弹出窗口,这很烦人.
奇怪的是,如果我只使用JCheckBox菜单中的普通项(而不是JCheckBoxMenuItems),行为就像它应该的那样:弹出窗口停留在那里,可以选中/取消选中复选框.完成后,只需在外部单击即可关闭弹出窗口.
如果有弹出的项目,如何让弹出窗口表现得像JCheckBoxMenuItem?我更喜欢使用JCheckBoxMenuItems,因为它们的外观.
Joo*_*kka 12
好吧,从http://forums.sun.com/thread.jspa?threadID=5432911找到了工作答案.基本上,创建自定义UI:
public class StayOpenCheckBoxMenuItemUI extends BasicCheckBoxMenuItemUI {
@Override
protected void doClick(MenuSelectionManager msm) {
menuItem.doClick(0);
}
public static ComponentUI createUI(JComponent c) {
return new StayOpenCheckBoxMenuItemUI();
}
}
Run Code Online (Sandbox Code Playgroud)
并将其设置为JCheckBoxMenuItem:
myJCheckBoxMenuItem.setUI(new StayOpenCheckBoxMenuItemUI());
Run Code Online (Sandbox Code Playgroud)
不知道这是否是最优雅的解决方案,但效果很好.
| 归档时间: |
|
| 查看次数: |
3919 次 |
| 最近记录: |