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

你可能感兴趣的:(abstract)