AWT事件模型
AWT 事件模型
课程目标
---编写代码来处理在图形用户界面中发生的事件;
---描述Adapter类的概念,包括如何和何时使用它们;
---根据事件对象的细节来确定产生事件的用户动作;
---为各种类型的事件创建合适的接口和事件处理器;
*- 事件 --描述发生了什么的对象;
*- 事件源 --事件的产生器;
*- 事件处理器--接收事件、解释事件并处理用户交互的方
法;
--如果用户在用户界面层执行了一个动作(鼠标点击和按键
),这将导致一个事件的发生. 事件是描述发生了什么的对
象. 存在各种不同类型的事件类用来描述各种类型的用户
交互.
* 事件源
-- 事件源是一个事件的产生者. 例如在Button组件上点击
鼠标会产生以这个Button为源的一个ActionEvent. 这个
ActionEvent实例是一个对象,它包含关于刚才所发生的那
个事件的信息的对象,这些信息包括:
getActionCommand-返回与动作相关联的命令名称;
getWhen-返回事件发生的时间;
* 事件处理器
-- 事件处理器就是一个接收事件、解释事件并处理用户交
互的方法.
JDK1.0的事件模型:层次模型
JDK1.1的事件模型:委托模型
事件监听器: 实现了监听器接口的类. 一个监听器对象是
一个实现了专门的监听器接口的类的实例.
--当单击一个按钮时就会产生一个事件(ActionEvent),然
后检查是否有与该按钮关联的事件处理器(实际上就是一个
方法),如果没有,那么什么都不执行,如果有,就会降该事件
传递给与该按钮关联的事件处理器方法,作为该方法的参数
,之后该事件处理器方法就回自动得到调用, 并且该方法可
以使用传递过来的ActionEvent对象,进而获得事件发生时
与该事件及事件源相关联的信息.
--Java中组件若想添加事件处理器,都会使用形如
addXXXListener的方法来添加.
委托模型(JDK1.1或更高)
优点:
-事件不会意外被处理;
-有可能创建并使用适配器(adapter)类对事件动作进行分
类.
-委托模型有利于把工作分不到各个类中.
/
AWT 事件处理
事件处理机制
几个典型代表意义的事件:
MouseEvent
WindowEvent
ActionEvent
事件类型
-许多事件类在java.awt.event包中.
-对于每类事件,都有一个接口,这个接口必须由想接收这个事件的类的对象实现。这个接口还要求定义一个或多个方法。当发生特定的事件时,就会调用这些方法。
多监听者
-多监听者可以使一个程序的不相关部分执行同样的动作;
-事件发生时,所有被注册的监听者的处理器都会被调用.
//
事件Adapters(适配器)
-你定义的Listener可以继承Adapter类,而且只需重写你所需要的方法
-为了方面起见,Java语言提供了Adapters类,用来实现含有多个方法的类. 这些Adapters类中的方法是空的.
-你可以继承Adapters类,而且只需要重写你所需要的方法.
为简化编程,JDK针对大多数事件监听器接口定义了相应的实现类,我们称之为事件适配器(Adapter)类.
在适配器类中, 实现了相应监听器接口的所有方法,但不做任何事情,只要继承适配器类,就等于实现了相应的监听器接口.
如果要对某类事件的某种情况进行处理,只要覆盖相应的方法就可以,其他的方法再也不用"简单实现"了.
如果想用做事件监听器的类已经继承了别的类,就不能再继承适配器类了,只能去实现事件监听器接口了.