2011-10-21 38 views
3

我已經使用下面的setAction方法向itemMenu添加了一個操作,但是當我執行代碼時,此菜單項的文本消失。代碼工作正常,因爲單擊此菜單項的位置會導致執行該操作。爲什麼在調用setAction方法後Item菜單文本消失?

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

回答

4

傳中,按鈕或菜單項的動作的構造函數的名稱:

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

是的,謝謝@Gnon – sahar

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