2011-11-15 48 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