2014-01-05 4 views
0

Я пишу приложение в системном трее в Java для OS X, которое получает имя компьютера, MAC-адрес и IP-адрес. Я получил информацию, и MenuItems загрузился нормально. Моя проблема заключается в обновлении MenuItems при изменении информации пользователя. Я добавил слушателя мыши, который будет перестраивать MenuItems, когда пользователь нажимает на значок в трее. Я добавил popup.removeall(), а затем переделаю мои MenuItems, но он не работает. Каков правильный способ обновления моих меню?Java Update MenuItems

public void mouseClicked(MouseEvent e) 
       { 

        try 
        { 
        popup.removeAll(); 



        PopupMenu popup = new PopupMenu(); 
        MenuItem defaultItem = new MenuItem("Exit"); 
        defaultItem.addActionListener(exitListener); 
        MenuItem userIP1 = new MenuItem(getIP()); 
        MenuItem userMAC1 = new MenuItem(getMac()); 
        MenuItem computerName1 = new MenuItem(getComputerName()); 


        popup.add(computerName1); 
        popup.add(userMAC1); 
        popup.add(userIP1); 
        popup.add(defaultItem); 
        try 
        { 
        tray.add(trayIcon); 
        } 
        catch(Exception e2) 
        { 
         //Empty 
        } 

        } 


        catch(UnknownHostException e1) 
        { 
         //Empty 

        } 
       } 

ответ

1

Я думаю, вам просто нужно, чтобы удалить эту строку:

PopupMenu popup = new PopupMenu(); 

который заставит все следующие строки для доступа к локальным переменным popup, а не на поле, вы ожидаете, чтобы обновить.

+0

Вы мужчина? Хотел бы я купить тебе пиво. – Lgwells1

Смежные вопросы