[转]Java事件处理机制- 事件监听器的四种实现方式
原文来自http://stefan321.iteye.com/blog/345221
- 自身类作为事件监听器
- 外部类作为事件监听器
- 匿名内部类作为事件监听器
- 内部类作为事件监听器
自身类作为事件监听器:
- 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);
- );
- 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);
- );
- 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);
- );
- 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);
- );
- 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();
- }
- }
[转]Java事件处理机制- 事件监听器的四种实现方式的更多相关文章
- Java事件处理机制- 事件监听器的四种实现方式
自身类作为事件监听器 外部类作为事件监听器 匿名内部类作为事件监听器 内部类作为事件监听器 自身类作为事件监听器: import javax.swing.*; import java.awt.*; i ...
- 【转】转帖并注释:Java中的事件处理机制--事件监听器的四种实现方式
原文地址:http://blog.sina.com.cn/s/blog_4b650d650100nqws.html Java中四种事件监听器的实现方式分别为: 自身类做为事件监听器 外部类作为事件监听 ...
- Java事件监听器的四种实现方式
自身类作为事件监听器 外部类作为事件监听器 匿名内部类作为事件监听器 内部类作为事件监听器 自身类作为事件监听器: import javax.swing.*; import java.awt.*; i ...
- Java事件监听的四种实现方式
1.事件对象: 一般继承自java.util.EventObject对象,由开发者自行定义. 2.事件源: 就是触发事件的源头,不同的事件源会触发不同的事件类型. 3.事件监听器: 事件监听器负责监听 ...
- 从零开始理解JAVA事件处理机制(2)
第一节中的示例过于简单<从零开始理解JAVA事件处理机制(1)>,简单到让大家觉得这样的代码简直毫无用处.但是没办法,我们要继续写这毫无用处的代码,然后引出下一阶段真正有益的代码. 一:事 ...
- java事件处理机制
java中的事件机制的参与者有3种角色: 1.event object:就是事件产生时具体的"事件",用于listener的相应的方法之中,作为参数,一般存在与listerne ...
- 从零开始理解JAVA事件处理机制(3)
我们连续写了两小节的教师-学生的例子,必然觉得无聊死了,这样的例子我们就是玩上100遍,还是不知道该怎么写真实的代码.那从本节开始,我们开始往真实代码上面去靠拢. 事件最容易理解的例子是鼠标事件:我们 ...
- Java事件处理机制(深入理解)
本文是关于Java事件处理机制的梳理,以及有重点的介绍一些注意点,至于基础的概念啥的不多赘述. 一.Java事件处理机制初步介绍(看图理解) 根据下图,结合生活实际,可以得知监护人可以有多个,坏人对小 ...
- 从零开始理解JAVA事件处理机制(1)
“事件”这个词已经被滥用了.正因为“事件”的被滥用,很多人在用到事件的时候不求甚解,依样画葫芦,导致学习工作了很多年,还是不清楚什么是事件处理器.什么是事件持有者.所以,如果你对于Event这个词还是 ...
随机推荐
- Debian/Ubuntu/Deepin下AndroidStudio2/3打开AVD模拟器无反应
Debian系AS无法启动模拟器 问题描述 早在半年前将开发环境从windows迁移到了Linux:当时用的是Debian系统,也是在安装完成AndroidStudio之后无法开启模拟器,也没出现什么 ...
- Unity调试模式设置辅助线是否可见
1.新建变量 //调试的标识(状态开关) public bool m_debug = true; 2.在画线方法中写 //如果非调试状态,则不再输出网格和立方体 if (!m_debug) { ret ...
- C语言与C++语言的强制类型转换格式区别
C语言:(类型)(表达式),其中类型的括号()必须带. C++语言:(类型)(表达式),其中类型的括号()跟进表达式选带.
- html实现滚动播报(原生JS实现)
html实现滚动播报(原生JS实现) 废话不多说,先看一个简单的滚动效果(鼠标放上去的时候可以暂停滚动,谷歌版本 66.0.3359.139(正式版本)查看时会出现滚动混乱.单独提出来的时候不会,应该 ...
- kvm恢复和删除快照
使用文件快照的方式实现文件备份,但单说快照(snapshot)的话,他是某一时间点(版本)你能看到的该时间点备份文件状态的全貌,通过文件的快照(全貌)你能恢复到特定时间点(版本)的文件状态. 创建虚拟 ...
- B-trees
B-trees are balanced search trees designed to work well on disks or other direct accesssecondary sto ...
- 在eclipse中启动java程序的时候,每次都会在一个未设置断点的源码里面,卡断点
可以通过取消这个勾选框,来阻止代码在未设置断点的地方停止 具体位置在:Preferences--Java--Debug
- 弹性布局(Flex布局)整理
一. 弹性布局 一个好的网站都有让用户看上去很舒服的布局,一个网站的布局也会或多或少影响到它的浏览量,看完阮大神的博客,就想把弹性布局整理一下. 在平时的我们常用的布局类型有以下几种: 1.浮动+定 ...
- 使用flask框架实现web页面与数据库数据互联+常见的几种状态码
1.通过cygwin从pip install两个包:PyMySQL.SQLAlchemy: 2.在app.py中import我们要用到的库中的包:create_engine,text :from sq ...
- 二进制安装MySQL数据库
今天安装的是二进制的mysql包5.7.21的包,在配置文件的时候采了好多坑,左后还是搞定了,来和大家分享一下 二进制msyql5.7.21版本的主从复制安装 新建/picclife目录 mkdir ...