Обновить отображаемые имена JMenu - PullRequest
6 голосов
/ 16 ноября 2011

Итак, у меня есть 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());
}

Оператор печати показывает, что имя изменилось.

1 Ответ

5 голосов
/ 16 ноября 2011

Если я понимаю, что именно вы хотите (снимок мог бы быть полезным), тогда вам следует использовать menu.setText("player1")

setName(string) не для отображения, см. здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...