Java swing:根据JMenuItem选择重命名JMenu标题

时间:2014-05-14 20:30:12

标签: java swing jmenu jmenuitem jmenubar

是否可以使用选定的JMenuItem重命名JMenu标题?

我正在使用ActionListener来执行此操作:

public MenuBar(){
.
.
.
add(createMenu("Choose Bow: "));
.
.
.
public JMenu createmenu(String name){
JMenu menu = new JMenu(name);
JRadioButtonMenuItem bow = new JRadioButtonMenuItem("Pink");
bow.setHorizontalTextPosition(JMenuItem.RIGHT);
bow.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent evt){
        String current = "Pink";
        add(createMenu(current));
        menu.revalidate();          
        }
    });

group.add(bow);
.
.
.
menu.add(bow);
menu.revalidate();

return menu;
}

我希望菜单说Pink而不是Choose Bow:,但我现在写的内容只是在菜单栏上重新创建了一个菜单,除了我已经拥有的菜单。

1 个答案:

答案 0 :(得分:4)

此:

JMenu menu = new JMenu(name);

需要更改为:

menu = new JMenu(name);其中menu是该类的实例成员:

private JMenu menu;

然后在actionPerformed(...)中,只需致电:

menu.setText(current)而不是重新创建它。