2011-11-15 63 views
6

所以我有一个JMenu,里面有几个子菜单。这些菜单的名称通过获得4名球员中的1名的名字来设置。我添加了一个MenuListener到JMenu使用更新JMenu显示名称

menu.setName(player.getName()); 

然而,名称变化,但该更新未在菜单中显示更新的名称。我如何让菜单更新它的显示?

editMenu.addMenuListener(new MenuListener() { 

     public void menuSelected(MenuEvent e) { 
      updateMenu();  
     } 

     public void menuDeselected(MenuEvent e) { 
     } 

     public void menuCanceled(MenuEvent e) { 
     } 
}); 

和updateMenu方法:

public void updateMenu() 
{ 
    partOneMenu.setName(Participant1.getName()); 
    partTwoMenu.setName(Participant2.getName()); 
    partThreeMenu.setName(Participant3.getName()); 
    partFourMenu.setName(Participant4.getName()); 

    partOneMenu.revalidate(); 

    partTwoMenu.revalidate(); 
    partThreeMenu.revalidate(); 
    partFourMenu.revalidate(); 

    System.out.println(partOneMenu.getName()); 
} 

print语句表明该名称已更改。

回答

5

如果我理解你想要什么(快照可能是有用的),那么你应该使用menu.setText("player1")

setName(string)没有显示,请参阅here

+0

就是这样!谢谢! –

+0

不客气! – yair