设为首页】 【加入收藏】 【网站地图】 【商品折扣
娱乐一生 娱乐明星
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
首页  |  java  |  .NET  |  C/C++  |  网页技术  |  php  |  asp  |  delphi  |  VC  |  VB开发  |  游戏开发  |  软件工程  |  Power Builder  |  Linux开发  |  Windows开发技巧
当前位置:首页 >> Ibatis >> Java中事件的应用

Java中事件的应用 -

,
作者: ZDNET CHINA 特稿
Thursday, April 11 2002 11:04 AM
Java中基本API函数就象Windows工具箱一样很多时候都要依赖event实现某些功能,更不
用说Java Media Framework (JMF), Java Platform Debugger Architecture (JPDA),
和 JavaBea 了。Events是Java整体平台的一部分,本文中,我把一些概念放在Event应
用和处理方法之后来解释,同时,还要讨论一些常用技术来简化events的处理过程。
术语:
事件:由用户创建、需要程序做出响应的行为——比如,按钮、鼠标动作
用events编程
Events并不排斥Java平台,在Java之前就有了Events,而且尤为受Windows和X Windows
系统图形用户界面的欢迎。这些图形化系统都是用户用Events创建的。相反,传统的编
程模型中,程序流程是由具体应用来决定的,具体的流程已经由给定的状态和条件预先
设定好了(图A)。
图 A
传统程序流程
这种应用类型的例子就是指令应用,一旦应用被调用,它就会按照给定的指令、逻辑代
码和外部独立参数来实现它的功能。
Events并不同于传统的程序步骤,因为它是在程序指令之外发挥作用。当Event被触发的
时候,就会告知具体的应用程序,然后执行某些代码(图B),通常这一过程要涉及到调
用预先设定好的程序或函数,并给它们足够的信息以保证程序能够按正常的逻辑关系运
行。
图 B
Event程序流程
Event在某些时候不按预先设定好的顺序发挥作用,这样就需要不同的程序模型,在这个
模型中,应用程序就要受Event的控制,由Event来决定实现什么功能以及什么时候运行
。同时,应用程序还要预先编码,这样才能不完全依赖于Events的顺序。
这个编程模型定义了event-driven应用,象图形用户界面(GUI)的交互应用,它仅仅对用
户的行为(event)做出反应,而且这些行为要依仗具体的Event,另外,用户还可以在任
何时候,按任何顺序点击按钮、选择选项以及输入信息。基本上来说,Events是很随便
的——可以按照用户的意图来决定。
Events和Java
在Java中,Events是由Objects生成的,一个Event由带有Event信息的java.util.Event
Object子集来表示,每一种Event都有很多子集。至少,它们都带有生成此Event的Obje
ct的一些信息,但是每一个子集都定义了Event的一些额外信息。
比如,点击javax.swing.JButton,这个object就会生成java.awt.event.ActionEvent,
同时还生成了java.awt.event.ActionEvent类,把关于Event的一些信息包括它本身的一
些参考信息总结在一起,就会发现Event的很有意思的部分。


Event公告
公告是调用object并把event作为参数传给它,也就是所谓的event handlers,如果一个
object被给定了Event,那么它就必须要运行一个界面并且对Event进行注册,称这些Ob
jects为event listeners。
Object执行哪个界面要视Event而定,每种Event都有特定的界面,叫做event listener
s界面的子界面。每种界面都定义了一个方法,而且每个方法都把Event Object作为一个
参数
注意对于一个界面定义多种方法是很正常的,而且多个Events也通常用一个类来表示。
比如,键锁定和键释放都会生成Event,但是这两个动作都可以用同一个类java.awt.ev
ent.KeyEvent来表示。尽管Event Object经常要确定哪种Event生成,但是如果不同的方
法表示不同的Event,那么实现起来还是很简单的。
所以,用java.awt.event.KeyEvent events(java.awt.event.KeyEvent)的相关界面可
以定义key pre es方法keyPre ed,并且可以定义另一种key releases方法keyReleas
ed。
一旦Object执行了正确的界面,它就必须注册为相关Event的Listener,生成Events的每
个类都能提供增加和删除listener的方法,许多listeners都可以用假设的源来注册,当
一个Event过期的时候,其他Event都可以轮流调用。
处理Events
如果想看看Event Listener是如何实现的,可以看看列表A(Listing A)中的例子,它包
含了扩展类javax.swing.Jdialog,同时还生成了带两个按钮Ok和Cancel的对话框,注意
,类也可以实现java.awt.event.ActionListener界面。
Events由两个按钮生成,因此actio erformed法证明了调用何种方法要依靠按哪一个按
钮来决定。与此类似,其他控制也要运行相关界面和相同逻辑来处理。
匿名类
我们已经看到了什么是实现Event的最传统、有效的方式,但有时候它也会带来麻烦——
特别是当你需要处理很多控键时,实现额外的界面和测试证明确实存在问题。对这一问
题,程序员就需要找另外的方法来解决,最常用的方法就是用匿名类,见表B (Listing
B).
尽管这一方法简便易行,但是除了一些简单情况之外,我们并不推荐这一方法,因为这
样每个Event又要生成一个新的类。如果每一个应用都有一个复杂的界面,那么这些小的
匿名类数量就会成倍增长,这样,由于大量的类占用了很大的磁盘空间,就会降低用户
的运行速度。当采用这些类生成Windows和对话框时,用户就要经过一段时间延迟。
映射
另一种处理Events的常用方法就是使用映射API来写一般类。表C(Listing C)就是这样一 JAVA天堂
个例子,表D(Listing D)是表A中更改后的一些代码。
这一方法与匿名类具有同样的优点,但它却没有匿名类那样的麻烦。处理其他类型Even
t的新类采用同样的方法很容易生成。
结论
Event编程并不与java相排斥,它是这个平台很重要的组成部分。它提供了开发灵活
应用的方法,同时用户可以自主决定程序流程,Java中实现Event也是直截了当的。但是
知道在什么情况下使用什么方法是非常重要的。本文中我们共谈到了3中方法:为Objec
t分配Event,匿名类以及映射法写一般类。
无聊。。。。。。。。
无聊。。。。。。。。
还是无聊。。。。。。
。。。。。。。。。。



 

娱乐图摘

更多 >>

靓丽清纯美女meimei

美女私房全裸照
导演劝女演员脱衣服(视频)

大胆火辣人体艺术写真(图)

黑丝妹妹热辣诱惑-丝袜美女妹妹

PLMM 漂亮妹妹图集-妹妹图库

全球美女图库-美女集中营

52MM 我爱漂亮妹妹-制服妹妹诱惑

图王图库-世界美女明星图片资料库
美女写真集锦

激情两性-解密性生活
浴室MM湿身内衣诱惑
邻家小妹洗澡被偷拍(视频)

热点文章

更多

· IBatis最新最全开发指南 - 通俗易懂IBAT教程(2)
· "t3://localhost:7001"中的t3是什么意思
· iBatis简明教程及快速入门
· 怎么配置jdbc数据源?
· C程序员想转为JAVA
· Java中事件的应用
· tomcat 4.0.1怎么设置servlet目录?
· 【合集】真心实意招聘JAVA高手,承包项目.报酬相当于每月.
· 关于中间件的问答实录(MIDWARE FAQ)
· .NET大迁移:风险评估(转载)

热点文章

更多