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");
我尝试将 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");