我正在构建一个下拉菜单,该菜单位于程序菜单栏中,如果单击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。

07-24 19:55