JMenu 子菜单项显示不正确

JMenu submenu items not displayed properly

我尝试将 2 个 JRadioButtonMenuItem 作为子菜单项添加到 JMenuItem,但子菜单项显示不正确。

这是我目前试过的代码

 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);
    }
}

当前输出

预计:

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

我错过了什么?

JMenuItem 不是其他 JMenuItem 的容器。相反,将 tabSpaceMenuItem 改为 JMenu...

tabSpaceMenuItem = new JMenu("Tab Length");