java的AbstractAction类用法示例(利用java的AbstractAction处理事件)

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


 

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值