博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java事件处理机制- 事件监听器的四种实现方式【转】
阅读量:4362 次
发布时间:2019-06-07

本文共 3651 字,大约阅读时间需要 12 分钟。

原文:

自身类作为监听器

import javax.swing.*;import java.awt.*;import java.awt.event.*;/** *Java事件处理机制:自身类作为事件监听器 *@author Winty(wintys@gmail.com)  *@version 2008-12-3 */class ThisClassEvent extends JFrame implements ActionListener{     JButton btn;    public ThisClassEvent(){        super("Java事件监听机制");        setLayout(new FlowLayout());        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        btn=new JButton("点击");        btn.addActionListener(this);        getContentPane().add(btn);        setBounds(200,200,300,160);        setVisible(true);    }    /**************************************/    public void actionPerformed (ActionEvent e){        Container c=getContentPane();        c.setBackground(Color.red);    }    /**************************************/    public static void main(String args[]){        new ThisClassEvent();    }}

外部类作为监听器

import java.awt.*;import java.awt.event.*;import javax.swing.*;/** *Java事件处理机制:外部类作为事件监听器 *@author Winty(wintys@gmail.com)  *@version 2008-12-3 */class OuterClassEvent extends JFrame{     JButton btn;    public OuterClassEvent(){        super("Java事件监听机制");        setLayout(new FlowLayout());        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        btn=new JButton("点击");        btn.addActionListener(new OuterClass(this));        getContentPane().add(btn);        setBounds(200,200,300,160);        setVisible(true);    }    public static void main(String args[]){        new OuterClassEvent();    }} /*外部类*********************************/class OuterClass implements ActionListener{    OuterClassEvent oce;    public OuterClass(OuterClassEvent oce){        this.oce = oce;    }    public void actionPerformed(ActionEvent e){        Container c=oce.getContentPane();        c.setBackground(Color.red);    }}

匿名内部类作为监听器

import java.awt.*;import java.awt.event.*;import javax.swing.*;/** *Java事件处理机制:匿名内部类作为事件监听器 *@author Winty(wintys@gmail.com)  *@version 2008-12-3 */class AnonymousEvent extends JFrame{     JButton btn;    public AnonymousEvent(){        super("Java事件监听机制");        setLayout(new FlowLayout());        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        btn=new JButton("点击");        /*匿名内部类******************************/        btn.addActionListener(            new ActionListener(){                public void actionPerformed(ActionEvent e){                    Container c=getContentPane();                    c.setBackground(Color.red);                }            }        );        /***************************************/        getContentPane().add(btn);        setBounds(200,200,300,160);        setVisible(true);    }    public static void main(String args[]){        new AnonymousEvent();    }}

内部类作为监听器

import java.awt.*;import java.awt.event.*;import javax.swing.*;/** *Java事件处理机制:内部类作为事件监听器 *@author Winty(wintys@gmail.com)  *@version 2008-12-3 */class InnerClassEvent extends JFrame{     JButton btn;    public InnerClassEvent(){        super("Java事件监听机制");        setLayout(new FlowLayout());        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        btn=new JButton("点击");        btn.addActionListener(new InnerClass());        getContentPane().add(btn);        setBounds(200,200,300,160);        setVisible(true);    }    /*内部类*********************************/    class InnerClass implements ActionListener{        public void actionPerformed (ActionEvent e){            Container c=getContentPane();            c.setBackground(Color.red);        }    }    /**************************************/    public static void main(String args[]){        new InnerClassEvent();    }}

转载于:https://www.cnblogs.com/Leo-Forest/archive/2012/09/14/2685399.html

你可能感兴趣的文章
JDBC连接MySQL数据库及演示样例
查看>>
Beta 冲刺(1/7)
查看>>
修改 Vultr 登录密码
查看>>
CSS学习
查看>>
Centos 安装lnmp完整版
查看>>
【转】Eclipse和PyDev搭建完美Python开发环境(Ubuntu篇)
查看>>
redis安装和配置
查看>>
2016424王启元 Exp5 msf基础应用
查看>>
Differences between page and segment
查看>>
Jdk与Tomcat配置与安装
查看>>
关于一个Java web与JFrame的深度结合
查看>>
VB连数据库conn.open的参数
查看>>
《信息安全系统设计基础》实验三
查看>>
SpringBoot Docs
查看>>
解决sublime text 2总是在新窗口中打开文件(标签中打开)
查看>>
VUE AntDesign DatePicker设置默认显示当前日期
查看>>
WIN32窗口模板
查看>>
859. Buddy Strings - LeetCode
查看>>
[置顶] 关键字弹出动画
查看>>
支付宝api指南
查看>>