2010-09-07 3 views
0

Я создаю выпадающее меню, которое находится в строке меню программы и всплывает JPopupMenu, если щелкнуть JButton. В JPopupMenu есть несколько JMenuItems.JMenuItem показывает флажок слева, как его отключить?

Однако, рядом с каждым JMenuItem он показывает флажок! Который выглядит следующим образом:

alt text

Я не думаю, что он должен, и есть явное 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.

Спасибо!

Приветствия,
Его


Edit: Я установил ее. Проблема заключается в библиотеке Jide. Я использовал его для пользовательского LAF TabbedPanel. И это вводит LAF для всплывающих меню тоже до тех пор, пока это нагрузка.

Так что решение слишком установлено для не загружать стили меню.

LookAndFeelFactory.installJideExtension(
    LookAndFeelFactory.VSNET_STYLE_WITHOUT_MENU); 
+0

Возможно, значок исходит из вашего внешнего вида? ... Каков ваш внешний вид? – Istao

+0

Действуют ли флажки? Если бы я использовал эту функцию, я мог бы поместить ее в «ActionListener». Что-нибудь подозрительное в четырех вы упомянули? – trashgod

+1

Опубликуйте свой SSCCE (http://sscce.org), демонстрирующий проблему. Это будет включать попытку использования LAF по умолчанию, как было предложено ранее. – camickr

ответ

0

Проблема находится на Jide библиотеке. Я использовал его для пользовательского LAF TabbedPanel. И это вводит LAF для всплывающих меню тоже до тех пор, пока это нагрузка.

Так что решение слишком установлено для не загружать стили меню.

LookAndFeelFactory.installJideExtension(
    LookAndFeelFactory.VSNET_STYLE_WITHOUT_MENU); 
1

@zavie Основываясь на этом jide forum topic решения, при использовании Jide сделать следующее, прежде чем instatiating вашего меню

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

Кроме того, в Windows 7, строка меню будет иметь несколько другой фон цвета, чем пункты меню, решение заключается в использовании JideMenu вместо JMenu.