所以我有一个带有几个子菜单的JMenu。这些菜单的名称是通过获取4个玩家中的1个的名称来设置的。我向JMenu添加了一个MenuListener,使用
更新这些名称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语句显示名称已更改。