Почему текст меню «Пункт» исчезает после вызова метода setAction? - PullRequest
3 голосов
/ 22 октября 2011

Я добавил действие в itemMenu, используя метод setAction ниже, но когда я выполняю код, текст этого пункта меню исчезает.Код работает нормально, так как нажатие на расположение этого пункта меню приводит к выполнению действия.

exit.setAction(new AbstractAction() {
   public void actionPerformed(ActionEvent event) {
     System.exit(0);
   }
}

Ответы [ 2 ]

4 голосов
/ 22 октября 2011

Передать имя кнопки или пункта меню в конструктор действия:

// Note the AbstractAction constructor can take a String
exit.setAction(new AbstractAction("Exit"){ 
   public void actionPerformed(ActionEvent event){
     System.exit(0);
   }
}
2 голосов
/ 16 августа 2013

Вы можете использовать это для нескольких пунктов меню:

JMenuItem firstMenuItem = new JMenuItem("First");  
JMenuItem secondMenuItem = new JMenuItem("Second");  

ActionListener commanAction = new ActionListener() {  
    @Override  
    public void actionPerformed(ActionEvent ae) {  
        if(ae.getSource().equals(firstMenuItem)) {  
               // Do Something....  
        } else if(ae.getSource().equals(secondMenuItem)) {  
               // Do Something....  
        }  
    }  
};  
firstMenuItem.addActionListener(commanAction);  
secondMenuItem.addActionListener(commanAction);
...