WEB开发网
开发学院手机开发Android 开发 Java事件模型与Android事件模型的比较 阅读

Java事件模型与Android事件模型的比较

 2010-07-01 14:49:00 来源:WEB开发网   
核心提示:比较结果:Android借鉴了Java2中的UI事件处理机制,但是,Java事件模型与Android事件模型的比较,Android又提供了另一种事件?理器(event handler),而这个方式是否与java1.0事件模型一样呢,并接受对指定事件监听者接口实例的引用,3. Java事件和万事一样有其生命周期,有待求证

比较结果:Android借鉴了Java2中的UI事件处理机制,但是,Android又提供了另一种事件?理器(event handler),而这个方式是否与java1.0事件模型一样呢,有待求证。

Java事件模型:

我们把JDK1.0事件处理模型成为Java1.0事件模型,而从jdk1.1后的版本事件处理模型称为Java 2事件处理模型。

1. Java1.0事件模型:

dispatchEvent()-postEvent()-handleEvent()

在JDK1.0的版本采用用的事件模型,提供了基本的事件处理功能。这是一种包容模型,所有事件都封装在单一的类Event中,所有事件对象都由单一的方法 handleEvent来处理,这些定义都在Component类中。

为此,只有Component类的子类才能充当事件处理程序,事件处理传递到组件层次结构,如果目标组件不能完全处理事件,事件被传递到目标组件的容器。

在Java1.0事件处理模型中事件处理是以如下方法执行的。deliverEvent()用于决定事件的目标,目标是处理事件的组件或容器,此过程开始于GUI层的最外部而向内运作。

当按一个button时,如果检测到是该按钮激发的事件,该按钮会访问它的deliverEvent()方法,这一操作由系统完成。一旦识别目标组件,正确事件类型发往组件的postEvent()方法,该方法依次把事件送到handleEvent()方法并且等待方法的返回值。

"true"表明事件完全处理,"false"将使postEvent()方法联系目标容器,希望完成事件处理。

2. Java 2事件处理模型:

在Java2处理事件时,没有采用dispatchEvent()-postEvent()-handleEvent()方式,采用了监听器类,每个事件类都有相关联的监听器接口。事件从事件源到监听者的传递是通过对目标监听者对象的Java方法调用进行的。

对每个明确的事件的发生,都相应地定义一个明确的Java方法。这些方法都集中定义在事件监听者(EventListener)接口中,这个接口要继承 java.util.EventListener。 实现了事件监听者接口中一些或全部方法的类就是事件监听者。

伴随着事件的发生,相应的状态通常都封装在事件状态对象中,该对象必须继承自java.util.EventObject。事件状态对象作为单参传递给应响应该事件的监听者方法中。发出某种特定事件的事件源的标识是:遵从规定的设计格式为事件监听者定义注册方法,并接受对指定事件监听者接口实例的引用。

3. Java事件和万事一样有其生命周期,会出生也会消亡。下图3.1给出了Java事件生命周期的示意图:

1 2 3 4 5 6  下一页

Tags:Java 事件 模型

编辑录入:coldstar [复制链接] [打 印]
赞助商链接