Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JMenuItem在左侧显示复选框,如何禁用它?_Java_Swing_Checkbox_Jmenuitem - Fatal编程技术网

Java JMenuItem在左侧显示复选框,如何禁用它?

Java JMenuItem在左侧显示复选框,如何禁用它?,java,swing,checkbox,jmenuitem,Java,Swing,Checkbox,Jmenuitem,我正在构建一个下拉菜单,它位于程序菜单栏中,如果单击JButton,就会弹出一个jpopmpmenu。在JPOppMenu中有多个jMenuItem 但是,在每个JMenuItem旁边都会显示一个复选框!看起来是这样的: 我认为不应该,而且有明确的JCheckBoxMenuItem 有人知道为什么JMenuItem中会出现复选框,以及如何禁用/删除它吗 代码 ImageIcon icon = ViewUtilities.createIcon("resource/gui/mainMenu.png

我正在构建一个下拉菜单,它位于程序菜单栏中,如果单击JButton,就会弹出一个jpopmpmenu。在JPOppMenu中有多个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()
返回一个
jpopmpmenu

谢谢

干杯,


编辑:我已经修复了它。问题出在图书馆。我用过 用于定制选项卡式面板的LAF。它为弹出菜单注入了LAF 太长了,只要它是负载

因此,解决方案是将其设置为不加载菜单样式

LookAndFeelFactory.installJideExtension(
  LookAndFeelFactory.VSNET_STYLE_WITHOUT_MENU);
LookAndFeelFactory.installJideExtension(
  LookAndFeelFactory.VSNET_STYLE_WITHOUT_MENU);
问题出在图书馆。我用过 用于定制选项卡式面板的LAF。它为弹出菜单注入了LAF 太长了,只要它是负载

因此,解决方案是将其设置为不加载菜单样式

LookAndFeelFactory.installJideExtension(
  LookAndFeelFactory.VSNET_STYLE_WITHOUT_MENU);
LookAndFeelFactory.installJideExtension(
  LookAndFeelFactory.VSNET_STYLE_WITHOUT_MENU);
@基于此,zavie的解决方案是,当使用Jide在设置菜单之前执行以下操作时

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

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

图标可能来自您的外观?。。。您的外观如何?复选框是否有效?如果我想要这个功能,我可以把它放在
ActionListener
中。你提到的四个问题中有什么可疑的地方吗?张贴你的SSCCE()来演示问题。这将包括尝试前面建议的默认LAF。为了支持前面的评论者,您的LAF似乎正在使用JCheckBoxMenuItem UI来处理常规JMenuItem。我已经修复了它。SSCCE确实有帮助:)