- 浏览: 79392 次
- 性别:
- 来自: 沈阳
文章分类
最新评论
-
zzw118:
楼主讲解得很好,学习了!
hibernate延迟加载 -
fengwei199181:
不错。
hibernate延迟加载 -
teacher1998:
写得挺全的,格式也蛮好,thanks
Cookie与Session专题 -
wfl888_2007:
谢谢!~ 又回顾了下基础! 看来要经常逛逛! 不然都忘了! ...
CoreJava学习笔记5 -
whaosoft:
基础挺重要的 没事就该看下呢
CoreJava学习笔记5
awt事件模型(观察者模式)(重点)
事件模型中,包括事件源对象,事件处理者(事件监听者对象),事件对象。
事件源和事件处理者之间建立了授权关系,事件源类中有一个事件处理者的对象作为属性,也可能是一个事件处理者的集合。
事件对象
事件源————————〉事件处理者
事件模型的机制,事件源对象发送一个消息(事件对象),事件处理者调用相应的方法处理事件。
事件监听器接口中定义的方法,都以事件对象为参数。
一个事件源可以注册多个同类型的监听器,也可以注册多种多个事件监听器,一个事件监听器也可以为多个事件源服务。
了解一下什么是发消息:A,B,C三个类,分别作为事件源,事件处理者,事件对象。在A类中有一个B类的属性或者是一个内容为B类对象的集合,事件源和事件处理者之间的建立了授权关系,在B类需要实现一个自定义的接口,这个自定义的接口继承了EventListener,EventListener接口中没有定义任何方法,EventListener是一个标记接口。实现在自定义接口中定义好的用于事件处理的方法,C类要继承EventObject类。这些方法是以事件对象为参数的b(C c),在A类a(C c)方法中使用B类的对象调用B类中的b(C c)方法,并把事件对象作为参数,并在main方法中用A类的对象调用了a(c)方法,叫做A类对象给B类发送了消息。
例:
事件源对象间接调用了事件监听器的方法,以事件对象为实参传到事件监听器的方法中,事件源给事件监听器的方法发了一个消息(事件对象)。
例子如下:
以上代码只是事例,在引入包之后可以运行。
事件对象继承自EventObject类,并可以通过getSource()方法获得事件源对象,当然需要在构造事件对象时将事件源对象传入,来区分是哪个事件源发出的事件,所以要用事件对象作为参数。
事件源,事件对象,监听器接口,在java.awt包中提供了很多已经定义好的,只需要实现监听接口就好了。
在Java的图形编程中,所有动作(事件)都已经提供了相应的事件对象和事件监听接口,例如:实现窗口的关闭按钮,点击关闭按钮会发出相应的事件对象,相应的调用监听器中实现好的方法。相应的方法清参阅Java2 SE API帮助文档。
在图形界面中的添加事件监听的方法
1,组件是事件源,我们实现监听器借口
2,对组件调用addXXXListener()方法,把监听器注入进去。
在java.awt.event包中的ActionEvent类,在以下操作中会发送这个事件,
1,JButton组件,按钮被点击
2,JTextField组件,在单行文本域中按Enter键。
3,JCheckBox组件,选中了复选框。
4,JRadioButton组件,选中了单选按钮。
5,JMenu组件,选中菜单项。
例:
缺省适配模式,通过一个抽象类实现接口,抽象类中的接口方法实现,都是一个无意义的空实现,可以继承这个抽象类,只覆盖想覆盖的方法。
注意:在java.awt.event包中,会有一些适配类,也就是把相应的XXXListener,换成XXXAdapter就是适配类。
事件模型中,包括事件源对象,事件处理者(事件监听者对象),事件对象。
事件源和事件处理者之间建立了授权关系,事件源类中有一个事件处理者的对象作为属性,也可能是一个事件处理者的集合。
事件对象
事件源————————〉事件处理者
事件模型的机制,事件源对象发送一个消息(事件对象),事件处理者调用相应的方法处理事件。
事件监听器接口中定义的方法,都以事件对象为参数。
一个事件源可以注册多个同类型的监听器,也可以注册多种多个事件监听器,一个事件监听器也可以为多个事件源服务。
了解一下什么是发消息:A,B,C三个类,分别作为事件源,事件处理者,事件对象。在A类中有一个B类的属性或者是一个内容为B类对象的集合,事件源和事件处理者之间的建立了授权关系,在B类需要实现一个自定义的接口,这个自定义的接口继承了EventListener,EventListener接口中没有定义任何方法,EventListener是一个标记接口。实现在自定义接口中定义好的用于事件处理的方法,C类要继承EventObject类。这些方法是以事件对象为参数的b(C c),在A类a(C c)方法中使用B类的对象调用B类中的b(C c)方法,并把事件对象作为参数,并在main方法中用A类的对象调用了a(c)方法,叫做A类对象给B类发送了消息。
例:
public class Test{ public static void main(String[] args){ B bt=new B() A at=new A(bt); at.a(new c()); } } class A{ private B b; public A(){} public A(B b){ this.b=b; } public void a(C c){ b.b(c); } } class B{ public void b(C c){ System.out.println(“this is message ”+c.c()) } } class C{ public void c (){ System.out.println(“C Object”); } }
事件源对象间接调用了事件监听器的方法,以事件对象为实参传到事件监听器的方法中,事件源给事件监听器的方法发了一个消息(事件对象)。
例子如下:
import java.util.*; //事件源类 class A{ private String test; private List li=new ArrayList(); public A(String test){ this.test=test; } public String getTest(){return this.test;} public void addB(B b){ this.li.add(b); } public void removeB(B b){ this.li.remove(b); } public void fire(){ C c=new C(this); Iterator it=li.iterator(); while(it.hasNext()){ B b=(B)it.next(); b.b(c); } } } //事件监听器的接口,要继承EventListener标记接口 interface Blistener extends EventListener{ void b(C c); } //事件监听器,实现接口 class B implements Blistener{ public void b(C c){ A a=(A)c.getSource(); System.out.println(a.getTest()+" "+c.getMessage()); } } //事件对象类 class C extends EventObject{ private String message; public C(Object src){ super(src); } public void setMessage(String message){ this.message=message; } public String getMessage(){return this.message;} } public class Test{ public static void main(String[] args){ A a1=new A("Event"); B b1=new B(); c1.setMessage("Test"); a1.addB(b1);//注册监听器 a1.fire();//发送事件 } }
以上代码只是事例,在引入包之后可以运行。
事件对象继承自EventObject类,并可以通过getSource()方法获得事件源对象,当然需要在构造事件对象时将事件源对象传入,来区分是哪个事件源发出的事件,所以要用事件对象作为参数。
事件源,事件对象,监听器接口,在java.awt包中提供了很多已经定义好的,只需要实现监听接口就好了。
在Java的图形编程中,所有动作(事件)都已经提供了相应的事件对象和事件监听接口,例如:实现窗口的关闭按钮,点击关闭按钮会发出相应的事件对象,相应的调用监听器中实现好的方法。相应的方法清参阅Java2 SE API帮助文档。
在图形界面中的添加事件监听的方法
1,组件是事件源,我们实现监听器借口
2,对组件调用addXXXListener()方法,把监听器注入进去。
在java.awt.event包中的ActionEvent类,在以下操作中会发送这个事件,
1,JButton组件,按钮被点击
2,JTextField组件,在单行文本域中按Enter键。
3,JCheckBox组件,选中了复选框。
4,JRadioButton组件,选中了单选按钮。
5,JMenu组件,选中菜单项。
例:
Xxx.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { 。。。。。。 } });
缺省适配模式,通过一个抽象类实现接口,抽象类中的接口方法实现,都是一个无意义的空实现,可以继承这个抽象类,只覆盖想覆盖的方法。
注意:在java.awt.event包中,会有一些适配类,也就是把相应的XXXListener,换成XXXAdapter就是适配类。
发表评论
-
在myeclipse下给代码加注释
2010-10-26 14:16 2029给类加注释: 方法一 ... -
Cookie与Session专题
2010-09-30 21:52 927Cookie与Session专题一、coo ... -
内部类的分类
2010-09-29 18:04 12477.11. 内部类(注:所有使用内部类的地方都可以不用内 ... -
Java与中文的问题:char变量可以存中文;中文类名,变量名,方法名
2010-09-29 17:06 1238char容量为16bit,可以存中文 public ... -
如何使用Java解析XML
2010-09-23 00:09 1732XML_day01_pm 1.XML可宽展编辑语言 指令: ... -
JDBC课程笔记
2010-09-23 00:02 1072JDBC_day01_am 1. 2.解耦合 ... -
JDBC中Statement和PreparedStatement的区别
2010-09-22 23:59 968Statement:创建时不传递sql语句;每传入数据库一条s ... -
CoreJava学习心得17
2010-05-01 20:40 857JAVA5.0 的注释 (Annotation) ... -
CoreJava学习心得16
2010-05-01 20:35 937Java5.0的新特性 自动装 ... -
CoreJava学习心得15
2010-05-01 20:30 726反射 反射,在运行时 ... -
CoreJava学习心得14
2010-05-01 20:28 935ObjectInputStream和ObjectOutputS ... -
CoreJava学习心得13
2010-05-01 20:24 8631Java中的I/O 使用I/O流访问file中的内容。 J ... -
CoreJava学习笔记12
2010-05-01 20:23 932死锁问题 多线程不释 ... -
CoreJava学习笔记11
2010-05-01 20:20 722Java多线程编程 进程,即运行中的程序,多任务操作系统中并 ... -
CoreJava学习笔记9
2010-04-27 22:19 896java中的图形界面 GUI,图形化的用户接口,为了人机交互 ... -
CoreJava学习笔记8
2010-04-27 22:18 911[size=medium] ... -
CoreJava学习笔记7
2010-04-27 22:07 859很重要的一章哦 Java封 ... -
CoreJava学习笔记6
2010-04-26 22:27 979java中的接口 接口是一种程序结构,是特殊的抽象类。接口中 ... -
CoreJava学习笔记5
2010-04-26 22:21 983java中的修饰符 static 表示静态,它可以修饰属性, ... -
CoreJava学习笔记4
2010-04-25 18:43 1091面向对象的三大特征:封装、继承、多态 Java中的封装 封 ...
相关推荐
corejava学习笔记.doc
java\CoreJava笔记\CoreJava_day12.doc
适合初学者,复习使用
《Core Java》学习笔记。 我把自己的笔记都以注释的形式写在代码里面了,这样方便理解。 尽管有些部分被标记为“已完成”,但实际上以后说不定我还会折返回来进行修改或者添加一些注释。 当然如果你有什么不理解...
达内COREJAVA学习笔记
java\CoreJava笔记\CoreJava_day06.doc
java\CoreJava笔记\CoreJava_day11.doc
学习corejava的一些笔记 差不多都包含进去了。对初学者应该有帮助
达内core_java学习笔记,初学core_java者推荐文档
java\CoreJava笔记\CoreJava_day10.doc
本文档主要讲述的是CoreJava学习笔记;Java语法是C++语法的一个“纯净”版本,Java把打开套接字连接等繁琐的网络任务变得非常容易,Java可随意增加新的方法以及实例变量,而客户端却不需做任何的更改;希望本文档会...
java\CoreJava笔记\CoreJAVA_day01.doc 学习 借鉴
CoreJava DAY02 数据类型和控制结构 10 CoreJava DAY03 数组 20 CoreJava DAY04 27 CoreJava DAY05 面向对象 31 CoreJava DAY06 类的加载过程、实例化、继承、多态 37 CoreJava DAY07修饰符 50 CoreJava DAY08 常用...
次文档是在自己学习过程中的一些记录 和总结 也有些是直接转载 勿怪
java\CoreJava笔记\CoreJava_day15.doc
java\CoreJava笔记\CoreJava_day05.doc
java\CoreJava笔记\CoreJava_day13.doc
java\CoreJava笔记\CoreJava_day21.doc
java\CoreJava笔记\CoreJava_day07.doc