java的AbstractAction类用法示例(利用java的AbstractAction处理事件)
功能:实现一个窗体中两个顶层菜单,四个菜单项,单击相应的 菜单项,弹出相应的 消息框。
注意红色代码
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
//此类继承AbstractAction,实现actionPerformed()方法。
class AbstractEvent extends AbstractAction{
//private static final long serialVersionUID = 1L;
AbstractEvent(){
}
public void actionPerformed(ActionEvent e){
//弹出确认对话框
if (e.getActionCommand()=="open"){
JOptionPane.showMessageDialog(null, "打开");
}else if (e.getActionCommand()=="close"){
JOptionPane.showMessageDialog(null, "关闭");
}else if (e.getActionCommand()=="run"){
JOptionPane.showMessageDialog(null, "运行");
}else if (e.getActionCommand()=="stop"){
JOptionPane.showMessageDialog(null, "停止");
}
}
}
public class TestAbstractEvent {
private static JMenuBar menubar;
private static JFrame frame;
//指定MenuEvent的具体处理程序是AbstractEvent类完成的。
final Action MenuEvent=new AbstractEvent();
public TestAbstractEvent(){
frame=new JFrame("menu");
frame.getContentPane().setLayout(new BorderLayout());
menubar=new JMenuBar();
JMenu menuFile=new JMenu("file");
//实例化一个菜单项,并添加监听openAction,
JMenuItem menuItemopen=new JMenuItem("open");
menuItemopen.addActionListener(MenuEvent);
JMenuItem menuItemclose=new JMenuItem("close");
menuItemclose.addActionListener(MenuEvent);
menuFile.add(menuItemopen);
menuFile.add(menuItemclose);
JMenu menuTool=new JMenu("tool");
JMenuItem menuItemrun=new JMenuItem("run");
menuItemrun.addActionListener(MenuEvent);
JMenuItem menuItemstop=new JMenuItem("stop");
menuItemstop.addActionListener(MenuEvent);
menuTool.add(menuItemrun);
menuTool.add(menuItemstop);
menubar.add(menuFile);
menubar.add(menuTool);
menubar.setVisible(true);
frame.add(menubar,BorderLayout.NORTH);
frame.setSize(400,200);
frame.setVisible(true);
}
public static void main(String[] args){
new TestAbstractEvent();
}
}