Итак, у меня есть JMenu с несколькими подменю внутри. Названия этих меню устанавливаются путем получения имени 1 из 4 игроков. Я добавил MenuListener в 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());
}
Оператор печати показывает, что имя изменилось.