我正在构建一个下拉菜单,该菜单位于程序菜单栏中,如果单击JButton,则会弹出JPopupMenu。在JPopupMenu中,有多个JMenuItems。
但是,在每个JMenuItem旁边都显示一个复选框!看起来像这样:
我不认为应该这样做,并且为此提供了明确的JCheckBoxMenuItem。
有谁知道为什么JMenuItem中会出现一个复选框,以及如何禁用/删除它?
代码
ImageIcon icon = ViewUtilities.createIcon("resource/gui/mainMenu.png", _buttonLength);
setIcon(icon);
JMenuItem menuItem = new JMenuItem("New Whiteboard");
menuItem.addActionListener(new NewWhiteboardActionListener());
getMenu().add(menuItem);
menuItem = new JMenuItem("Open...");
menuItem.addActionListener(new OpenFileActionListener());
getMenu().add(menuItem);
menuItem = new JMenuItem("Preferences...");
menuItem.addActionListener(new PreferencesActionListener());
getMenu().addSeparator();
getMenu().add(menuItem);
menuItem = new JMenuItem("Exit");
menuItem.addActionListener(new ExitActionListener());
getMenu().addSeparator();
getMenu().add(menuItem);
其中
getMenu()
返回JPopupMenu
。谢谢!
干杯,
硕
编辑:我已修复它。问题出在
Jide
库上。我用过了用于TabbedPanel的自定义LAF。并为弹出菜单注入LAF
只要它的负载。
因此,解决方案也设置为不加载菜单样式。
LookAndFeelFactory.installJideExtension(
LookAndFeelFactory.VSNET_STYLE_WITHOUT_MENU);
最佳答案
@zavie基于此jide forum topic,解决方案是,在使用Jide进行菜单初始化之前执行以下操作
LookAndFeelFactory.installDefaultLookAndFeel();
LookAndFeelFactory.installJideExtension();
此外,在Windows 7上,菜单栏的背景颜色将与菜单项略有不同,解决方案是使用JideMenu而不是JMenu。