2017-04-16 64 views
0

我正在添加2 JRadioButtonMenuItem s作为子菜单项目到JMenuItem,但子菜单项目无法正确显示。JMenu子菜单项目显示不正确

此代码我到目前为止已经试过

private void setupEditMenu() { 

    editMenu = new JMenu("Edit"); 

    // some code.. 

    tabSpaceMenuItem = new JMenuItem("Tab Length"); 
    editMenu.add(tabSpaceMenuItem); 

    ButtonGroup tabSpaceButtonGroup = new ButtonGroup(); 
    JMenuItem fourSpacedTabMenuItem, eightSpacedTabMenuItem; 

    fourSpacedTabMenuItem = new JRadioButtonMenuItem("4 spaces"); 
    fourSpacedTabMenuItem.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent e) { 
      editor.setTabSize(4); 
     } 
    }); 
    tabSpaceButtonGroup.add(fourSpacedTabMenuItem); 
    tabSpaceMenuItem.add(fourSpacedTabMenuItem); 

    eightSpacedTabMenuItem = new JRadioButtonMenuItem("8 spaces"); 
    eightSpacedTabMenuItem.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent e) { 
      editor.setTabSize(8); 
     } 
    }); 
    tabSpaceButtonGroup.add(eightSpacedTabMenuItem); 
    tabSpaceMenuItem.add(eightSpacedTabMenuItem); 

    if(editor.getTabSize() == 4) 
     fourSpacedTabMenuItem.setSelected(true); 
    if(editor.getTabSize() == 8) { 
     eightSpacedTabMenuItem.setSelected(true); 
    } 
} 

电流输出 enter image description here

预计:

Edit 
|-Find 
|-Font 
|-Tab Length 
    |- 4 spaces 
    |- 8 spaces 

我缺少什么?

回答

2

JMenuItem不是其他JMenuItem的容器。相反,改变tabSpaceMenuItemJMenu,而不是...

tabSpaceMenuItem = new JMenu("Tab Length"); 

Submenu Items

+0

我的坏,我不知道我怎么错过了,顺便说一句,感谢您的帮助:) – cyberpirate92

+0

欢迎来到森林,注意树木;) – MadProgrammer