0

我正在构建一个位于程序菜单栏中的下拉菜单,如果单击 JButton 会弹出一个 JPopupMenu。在 JPopupMenu 中有多个 JMenuItem。

但是,在每个 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);
4

2 回答 2

1

@zavie基于this jide forum topic的解决方案是,在使用Jide执行以下操作之前,您的菜单

LookAndFeelFactory.installDefaultLookAndFeel();
LookAndFeelFactory.installJideExtension();

此外,在 Windows 7 上,菜单栏的背景颜色与菜单项的背景颜色略有不同,解决方案是使用 JideMenu 而不是 JMenu。

于 2011-09-11T17:09:27.397 回答
0

问题出在Jide图书馆。我已经将它用于 TabbedPanel 的自定义 LAF。只要加载,它也会为弹出菜单注入LAF 。

所以解决方案太设置它加载菜单样式。

LookAndFeelFactory.installJideExtension(
  LookAndFeelFactory.VSNET_STYLE_WITHOUT_MENU);
于 2010-10-11T08:48:52.593 回答