AbstractAction举例

abstractAction主要是可以统一定制,不需要像actionListener要一个一个去注册。

 

具体代码如下:

Jframe中一共3个地方用到了abstractAction:jmenuitem,jtoobar,jbutton

 

 

package testAbstractClass;

import java.awt.*;  
import java.awt.event.*;  
import javax.swing.*;  
import javax.swing.event.*;  
  
public class AbstractActionDemo1 extends JFrame {  
    JTextArea theArea = null;  
    ToolBarAction pushAction = null;  
      
    public AbstractActionDemo1(){  
        super("AbstractAction");  
        theArea = new JTextArea();  
        theArea.setEditable(true);  
        this.getContentPane().add(new JScrollPane(theArea));  
          
          
        pushAction = new ToolBarAction("按我",null);  
          
        JMenuBar menuBar = buildJMenuBar();  
        menuBar.setOpaque(true);  
        JToolBar toolBar = buildJToolBar();  
        this.getContentPane().add(toolBar,BorderLayout.NORTH);  
        
        JButton jb=new JButton(pushAction);
        this.getContentPane().add(jb,BorderLayout.WEST);  
        
        this.setJMenuBar(menuBar);  
        this.setVisible(true);  
        this.setBounds(new Rectangle(200,200,400,200));  
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
    }  
      
    public static void main(String...args){  
        new AbstractActionDemo1();  
    }  
      
    public JMenuBar buildJMenuBar(){  
        JMenu fileMenu = new JMenu("File");  
        fileMenu.setMnemonic('F');  
        fileMenu.add(pushAction);  
        JMenuBar menuBar = new JMenuBar();  
        menuBar.add(fileMenu);
        return menuBar;  
    }  
      
    public JToolBar buildJToolBar(){  
        JToolBar toolBar = new JToolBar();  
        toolBar.add(pushAction);  
        toolBar.setFloatable(true);  
        return toolBar;  
          
    }  
      
    class ToolBarAction extends AbstractAction{  
        public ToolBarAction(String name,Icon icon){  
            super(name,icon);  
        }  
        @Override  
        public void actionPerformed(ActionEvent e){  
            theArea.append("這是Action的好處\n");  
        }  
    }  
}  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值