首页 > 解决方案 > 无法将 JCheckBoxMenuItem 添加到菜单

问题描述

JCheckBoxMenuItem的src代码有如下类头:

public class CheckboxMenuItem extends MenuItem implements ItemSelectable, Accessible

因此,当一个类扩展另一个类时,这意味着它也应该继承其类型。或不?

我的问题是我无法将JCheckBoxMenuItem添加到JMenu(它需要添加 MenuItem)。

以下代码对我不起作用:

private void initMenu()
{
    menuBar = new JMenuBar();
    setJMenuBar(menuBar);

    mnFile = new JMenu("File");
    menuBar.add(mnFile);

    mnAudio = new JMenu("Audio");
    menuBar.add(mnAudio);

    mnitmQuit = new JMenuItem("Quit");
    mnFile.add(mnitmQuit);


    rmnitmNoice = new CheckboxMenuItem("Noice");
    // Eclipse gives error Message below *
    mnAudio.add(rmnitmNoice);

    rmnitmNuke = new JRadioButtonMenuItem("Nuke");
    // Same here
    mnAudio.add(rmnitmNuke);
}

JMenu 类型中的方法 add( JMenuItem ) 不适用于参数 ( CheckboxMenuItem )

我很确定我以前使用过这个并且没有任何问题。但是自从我开始使用Marven后,我有时会出现奇怪的行为(其他示例:@Override 不适用于实现接口的方法)

任何有相同问题或解决方案的人?

标签: javaswingjmenujmenuitem

解决方案


正如 VGR 在他的评论中解释的那样:错误是试图添加 CheckboxMenuItem 而不是 JCheckBoxMenuItem。


推荐阅读