【转】转帖并注释:Java中的事件处理机制--事件监听器的四种实现方式
原文地址:http://blog.sina.com.cn/s/blog_4b650d650100nqws.html
Java中四种事件监听器的实现方式分别为:
- 自身类做为事件监听器
- 外部类作为事件监听器
- 匿名内部类作为事件监听器
- 内部类作为事件监听器.
下面分别描述:
//---------------------------------------------------------------------
1. 自身类作为事件监听器:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*; //ActionListener:java.awt.event.ActionListener(interface),用来监听Action事件
class ThisClassEvent extends JFrame implements ActionListener
{
JButton btn; public ThisClassEvent()
{
super("Java事件监听机制");
setLayout(new FlowLayout());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); btn=new JButton("点击");
//addActionListerner()原型为:public void addActionListener(ActionListener l)
btn.addActionListener(this);
getContentPane().add(btn); setBounds(200,200,300,160);
setVisible(true);
} /------------------------------
//actionPerformed函数是从ActionListener中继承来的. public void actionPerformed (ActionEvent e)
{
Container c=getContentPane();
c.setBackground(Color.red);
} /------------------------------
public static void main(String args[])
{
new ThisClassEvent();
}
}
2. 外部类作为事件监听器:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*; class OuterClassEvent extends JFrame
{
JButton btn;
public OuterClassEvent()
{
super("Java事件监听机制");
setLayout(new FlowLayout());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); btn=new JButton("点击"); //addActionListerner()原型为:public void addActionListener(ActionListener l)
//new OuterClass(this)是OuterClass的实例,而OuterClass是从ActionListener继承来的
btn.addActionListener(new OuterClass(this));
getContentPane().add(btn); setBounds(200,200,300,160);
setVisible(true);
} public static void main(String args[])
{
new OuterClassEvent();
}
} //外部类------------------------------ //OuterClass从ActionListener继承
class OuterClass implements ActionListener
{
OuterClassEvent oce;
public OuterClass(OuterClassEvent oce)
{
this.oce = oce;
} //actionPerformed函数是从ActionListener中继承来的.
public void actionPerformed(ActionEvent e)
{
Container c=oce.getContentPane();
c.setBackground(Color.red);
}
} //---------------------------------------------------------------------
3. 匿名内部类作为事件监听器:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*; class AnonymousEvent extends JFrame
{
JButton btn; public AnonymousEvent()
{
super("Java事件监听机制");
setLayout(new FlowLayout());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); btn=new JButton("点击"); //匿名内部类---------------------------
//addActionListerner()原型为:public void addActionListener(ActionListener l)
btn.addActionListener
(
//new ActionListener()声明了ActionListener的一个实例
new ActionListener()
{ //actionPerformed函数是从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();
}
} //---------------------------------------------------------------------
4.内部类作为事件监听器:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*; class InnerClassEvent extends JFrame {
JButton btn;
public InnerClassEvent() {
super("Java事件监听机制");
setLayout(new FlowLayout());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); btn=new JButton("点击"); //addActionListerner()原型为:public void addActionListener(ActionListener l)
btn.addActionListener(new InnerClass());
getContentPane().add(btn); setBounds(200,200,300,160);
setVisible(true);
} //内部类---------------------------
//InnerClass继承了ActionListener
class InnerClass implements ActionListener
{ //actionPerformed函数是从ActionListener中继承来的.
public void actionPerformed (ActionEvent e)
{
Container c=getContentPane();
c.setBackground(Color.red);
}
} //------------------------------
public static void main(String args[]) {
new InnerClassEvent();
}
} //---------------------------------------------------------------------
【转】转帖并注释:Java中的事件处理机制--事件监听器的四种实现方式的更多相关文章
- [转]Java事件处理机制- 事件监听器的四种实现方式
原文来自http://stefan321.iteye.com/blog/345221 自身类作为事件监听器 外部类作为事件监听器 匿名内部类作为事件监听器 内部类作为事件监听器 自身类作为事件监听器: ...
- Java事件处理机制- 事件监听器的四种实现方式
自身类作为事件监听器 外部类作为事件监听器 匿名内部类作为事件监听器 内部类作为事件监听器 自身类作为事件监听器: import javax.swing.*; import java.awt.*; i ...
- Java事件监听器的四种实现方式
自身类作为事件监听器 外部类作为事件监听器 匿名内部类作为事件监听器 内部类作为事件监听器 自身类作为事件监听器: import javax.swing.*; import java.awt.*; i ...
- Java中List集合去除重复数据的四种方法
1. 循环list中的所有元素然后删除重复 public static List removeDuplicate(List list) { for ( int i = 0 ; i < lis ...
- Java中创建(实例化)对象的五种方式
Java中创建(实例化)对象的五种方式1.用new语句创建对象,这是最常见的创建对象的方法. 2.通过工厂方法返回对象,如:String str = String.valueOf(23); 3.运用反 ...
- Java事件监听的四种实现方式
1.事件对象: 一般继承自java.util.EventObject对象,由开发者自行定义. 2.事件源: 就是触发事件的源头,不同的事件源会触发不同的事件类型. 3.事件监听器: 事件监听器负责监听 ...
- 浅说Java中的反射机制(一)
在学习传智播客李勇老师的JDBC系列时,会出现反射的概念,由于又是第一次见,不免感到陌生.所以再次在博客园找到一篇文章,先记录如下: 引用自java中的反射机制,作者bingoideas.(()为我手 ...
- java中的反射机制在Android开发中的用处
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反 ...
- java中wait/notify机制
通常,多线程之间需要协调工作.例如,浏览器的一个显示图片的线程displayThread想要执行显示图片的任务,必须等待下载线程 downloadThread将该图片下载完毕.如果图片还没有下载完,d ...
随机推荐
- centos 7中添加一个新用户并授权的步骤详解
1.创建新用户: 创建一个用户名为:zhangbiao adduser zhangbiao 为这个用户初始化密码,linux会判断密码复杂度,不过可以强行忽略: passwd zhangbiao 更 ...
- Linux 修改/etc/profile 出错 导致所有命令都 command not found 的解决办法
执行命令 export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11R6/bin 然后再修改/etc/profile 再执行文件: source /etc/p ...
- Linux centosVMware 自动化运维Ansible介绍、Ansible安装、远程执行命令、拷贝文件或者目录、远程执行脚本、管理任务计划、安装rpm包/管理服务、 playbook的使用、 playbook中的循环、 playbook中的条件判断、 playbook中的handlers、playbook实战-nginx安装、管理配置文件
一.Ansible介绍 不需要安装客户端,通过sshd去通信 基于模块工作,模块可以由任何语言开发 不仅支持命令行使用模块,也支持编写yaml格式的playbook,易于编写和阅读 安装十分简单,ce ...
- R语言 sample抽样函数
Sample 函数用法: sample(x, size, replace = FALSE, prob = NULL) Arguments x - 可以是含有一个或多个元素的向量或只是一个正整数.x的长 ...
- 阿里云服务器ubantu创建新用户登录显示问题
在root用户下输入:vi /etc/passwd,找到添加的用户,在后面加上/bin/bash 重新登录即回复正常
- 笔记||Python3进阶之读取和写入yaml配置文件
yaml是专门用来写配置文件的语言,简洁强大,远比JSON格式方便,yaml在python语言中有PyYAML安装包. - 首先需要pip安装:pip install pyyaml - yaml基本语 ...
- zabbix开启对中文的支持--&&--中文乱码解决方法
zabbix不支持中文图 开启zabbix对中文的支持 原来zabbix默认把对中文的支持给关闭了,我们需要修改zabbix的php源文件. 修改站点根目录下include/locales.inc.p ...
- java并发:初探sleep方法
sleep与wait sleep是Thread方法,使得当前线程从运行态变为阻塞态.但它不会释放对象的锁. wait方法是Object方法,它的作用是使得当前拥有对象锁的线程从运行态变为阻塞态, 它会 ...
- 如何给Sqlite添加复合主键
如果是想两个字段组成一个复合主键的话可以如下.SQL code sqlite> create table t2 ( ...> id1 int , ...> id2 int, ...& ...
- 五、java基础-关键字this_static_super_abstract_final,finalize()方法finally语句块
1.关键字this 含义:this 是一个引用类型,代表当前对象,引用类型里面必然保存内存地址,在堆中的每个对象中存储,保存内存地址指向自身. 用法: 1)this可以用在成员方法中,里面保存内存地址 ...