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

标签 java swing checkbox jmenuitem

我正在构建一个下拉菜单,该菜单位于程序菜单栏中,如果单击 JButton,则会弹出 JPopupMenu。在 JPopupMenu 中有多个 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

谢谢!

干杯,

<小时/>

编辑:我已经修复了它。问题出在 Jide图书馆。我用过 用于 TabbedPanel 的自定义 LAF。它为弹出菜单注入(inject) LAF 只要有负载。

所以解决方案是将其设置为加载菜单样式。

LookAndFeelFactory.installJideExtension(
  LookAndFeelFactory.VSNET_STYLE_WITHOUT_MENU);

最佳答案

@zavie 基于此 jide forum topic解决办法是,使用积德在初始化菜单之前执行以下操作

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

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

关于java - JMenuItem 在左侧显示复选框,如何禁用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3656387/

相关文章:

java - NodeJS 服务器到 Tomcat 服务器的 CORS 问题

java - 创建我自己的 String 类/子字符串方法

java - 将 Actions 与 DocumentListener 结合使用

java - 从 JTable 中的排序中排除列

javascript - 如何验证动态生成的文本区域和复选框

java - 如何删除滑动窗口中的重复项 - Apache Beam

java - 将实时数据从 Viewpager Fragment 共享到 Activity

java - .setBackground() 方法不适用于 JRadioButton

javascript - 如何根据前一个复选框显示一组复选框

css - 复选框勾选在 Edge 浏览器中显示为点