zoukankan      html  css  js  c++  java
  • Java事件处理机制- 事件监听器的四种实现方式

    • 自身类作为事件监听器
    • 外部类作为事件监听器
    • 匿名内部类作为事件监听器
    • 内部类作为事件监听器


    自身类作为事件监听器: 
    Java代码  收藏代码
    1. import javax.swing.*;  
    2. import java.awt.*;  
    3. import java.awt.event.*;  
    4.   
    5. /** 
    6.  *Java事件处理机制:自身类作为事件监听器 
    7.  *@author Winty(wintys@gmail.com)  
    8.  *@version 2008-12-3 
    9.  */  
    10. class ThisClassEvent extends JFrame implements ActionListener{   
    11.     JButton btn;  
    12.   
    13.     public ThisClassEvent(){  
    14.         super("Java事件监听机制");  
    15.         setLayout(new FlowLayout());  
    16.         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
    17.   
    18.         btn=new JButton("点击");  
    19.         btn.addActionListener(this);  
    20.         getContentPane().add(btn);  
    21.   
    22.         setBounds(200,200,300,160);  
    23.         setVisible(true);  
    24.     }  
    25.   
    26.     /**************************************/  
    27.     public void actionPerformed (ActionEvent e){  
    28.         Container c=getContentPane();  
    29.         c.setBackground(Color.red);  
    30.     }  
    31.     /**************************************/  
    32.   
    33.     public static void main(String args[]){  
    34.         new ThisClassEvent();  
    35.     }  
    36. }   



    外部类作为事件监听器: 

    Java代码  收藏代码
    1. import java.awt.*;  
    2. import java.awt.event.*;  
    3. import javax.swing.*;  
    4.   
    5. /** 
    6.  *Java事件处理机制:外部类作为事件监听器 
    7.  *@author Winty(wintys@gmail.com)  
    8.  *@version 2008-12-3 
    9.  */  
    10. class OuterClassEvent extends JFrame{   
    11.     JButton btn;  
    12.   
    13.     public OuterClassEvent(){  
    14.         super("Java事件监听机制");  
    15.         setLayout(new FlowLayout());  
    16.         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
    17.   
    18.         btn=new JButton("点击");  
    19.         btn.addActionListener(new OuterClass(this));  
    20.         getContentPane().add(btn);  
    21.   
    22.         setBounds(200,200,300,160);  
    23.         setVisible(true);  
    24.     }  
    25.   
    26.     public static void main(String args[]){  
    27.         new OuterClassEvent();  
    28.     }  
    29. }   
    30.   
    31. /*外部类*********************************/  
    32. class OuterClass implements ActionListener{  
    33.     OuterClassEvent oce;  
    34.   
    35.     public OuterClass(OuterClassEvent oce){  
    36.         this.oce = oce;  
    37.     }  
    38.   
    39.     public void actionPerformed(ActionEvent e){  
    40.         Container c=oce.getContentPane();  
    41.         c.setBackground(Color.red);  
    42.     }  
    43. }  



    匿名内部类作为事件监听器: 

    Java代码  收藏代码
    1. import java.awt.*;  
    2. import java.awt.event.*;  
    3. import javax.swing.*;  
    4.   
    5. /** 
    6.  *Java事件处理机制:匿名内部类作为事件监听器 
    7.  *@author Winty(wintys@gmail.com)  
    8.  *@version 2008-12-3 
    9.  */  
    10. class AnonymousEvent extends JFrame{   
    11.     JButton btn;  
    12.   
    13.     public AnonymousEvent(){  
    14.         super("Java事件监听机制");  
    15.         setLayout(new FlowLayout());  
    16.         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
    17.   
    18.         btn=new JButton("点击");  
    19.         /*匿名内部类******************************/  
    20.         btn.addActionListener(  
    21.             new ActionListener(){  
    22.                 public void actionPerformed(ActionEvent e){  
    23.                     Container c=getContentPane();  
    24.                     c.setBackground(Color.red);  
    25.                 }  
    26.             }  
    27.         );  
    28.         /***************************************/  
    29.         getContentPane().add(btn);  
    30.   
    31.         setBounds(200,200,300,160);  
    32.         setVisible(true);  
    33.     }  
    34.   
    35.     public static void main(String args[]){  
    36.         new AnonymousEvent();  
    37.     }  
    38. }   


    内部类作为事件监听器: 

    Java代码  收藏代码
    1. import java.awt.*;  
    2. import java.awt.event.*;  
    3. import javax.swing.*;  
    4.   
    5. /** 
    6.  *Java事件处理机制:内部类作为事件监听器 
    7.  *@author Winty(wintys@gmail.com)  
    8.  *@version 2008-12-3 
    9.  */  
    10. class InnerClassEvent extends JFrame{   
    11.     JButton btn;  
    12.   
    13.     public InnerClassEvent(){  
    14.         super("Java事件监听机制");  
    15.         setLayout(new FlowLayout());  
    16.         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
    17.   
    18.         btn=new JButton("点击");  
    19.         btn.addActionListener(new InnerClass());  
    20.         getContentPane().add(btn);  
    21.   
    22.         setBounds(200,200,300,160);  
    23.         setVisible(true);  
    24.     }  
    25.   
    26.     /*内部类*********************************/  
    27.     class InnerClass implements ActionListener{  
    28.         public void actionPerformed (ActionEvent e){  
    29.             Container c=getContentPane();  
    30.             c.setBackground(Color.red);  
    31.         }  
    32.     }  
    33.     /**************************************/  
    34.   
    35.     public static void main(String args[]){  
    36.         new InnerClassEvent();  
    37.     }  
    38. }   
     
     
  • 相关阅读:
    【小程序】请求与封装
    【小程序】生命周期
    【小程序】项目结构
    【笔记】vue-cli 开发环境中跨域连接后台api(vue-resource 跨域post 请求)
    【笔记】npm 安装 vue-cli
    【笔记】css 实现宽度自适应屏幕 高度自适应宽度
    【笔记】css 1像素边框
    【笔记】让360浏览器用chrome 内核渲染你的网页
    【实践】require.js + r.js 代码打包压缩初体验
    【笔记】学校项目开发中所了解的一些浏览器之间的差异
  • 原文地址:https://www.cnblogs.com/jiangzhaowei/p/7449027.html
Copyright © 2011-2022 走看看