문제

I'm building a drop down menu which resides in program menu bar and pops up a JPopupMenu if a JButton gets clicked. In the JPopupMenu there are multiple JMenuItems.

However, beside every JMenuItem it shows a checkbox! Which looks like this:

alt text

I don't think it should, and there is explicit JCheckBoxMenuItem for that.

Does anyone know why a check box appears in a JMenuItem and how do I disable / remove it?

The code

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);

where getMenu() returns a JPopupMenu.

Thanks!

Cheers,
Shuo


Edit: I've fixed it. The problem is on Jide library. I've used it for a custom LAF of TabbedPanel. And it injects LAF for popup menus too as long as it's load.

So the solution is too set it to don't load menu styles.

LookAndFeelFactory.installJideExtension(
  LookAndFeelFactory.VSNET_STYLE_WITHOUT_MENU);
도움이 되었습니까?

해결책 2

The problem is on Jide library. I've used it for a custom LAF of TabbedPanel. And it injects LAF for popup menus too as long as it's load.

So the solution is too set it to don't load menu styles.

LookAndFeelFactory.installJideExtension(
  LookAndFeelFactory.VSNET_STYLE_WITHOUT_MENU);

다른 팁

@zavie Based on this jide forum topic the solution is, when using Jide to do the following before instatiating your menus

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

Furthermore, on Windows 7, the menu bar will have a slightly different background color than the menu items, the solution is to use JideMenu instead of JMenu.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top