我已经使用下面的setAction方法向itemMenu添加了一个动作,但是当我执行代码时,该菜单项的文本消失了。代码工作正常,因为单击此菜单项的位置会导致执行操作。
exit.setAction(new AbstractAction() {
public void actionPerformed(ActionEvent event) {
System.exit(0);
}
}
答案 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);