为什么在调用setAction方法后,Item菜单文本会消失?

时间:2011-10-21 20:27:00

标签: java swing user-interface menu action

我已经使用下面的setAction方法向itemMenu添加了一个动作,但是当我执行代码时,该菜单项的文本消失了。代码工作正常,因为单击此菜单项的位置会导致执行操作。

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

2 个答案:

答案 0 :(得分:4)

将按钮或菜单项的名称传递给操作的构造函数:

// Note the AbstractAction constructor can take a String
exit.setAction(new AbstractAction("Exit"){ 
   public void actionPerformed(ActionEvent event){
     System.exit(0);
   }
}

答案 1 :(得分:2)

您可以将它用于多个菜单项:

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);