java AWT事件模型

Events(事件):描述发生了什么的对象

Event Source (事件源):事件的产生器

Event Handlers(事件处理器):接收事件对象,解释事件对象并处理用户交互的方法

JDK1.0 采用了层次型的事件模型。当事件产生时,它先被送往产生该事件的组件 (component), 如事件在这里未被处理,它就会被自动送往该组件的Container, 如Container也未对事件进行处理,则还会递交给该Container的上一层Container(如有的话)。
层次型模型的优点:
简单,对中小规模的应用比较合适。
 层次型模型的缺点:
1. 事件仅能被产生该事件的组件或它的Container所处理,但实际编程中要对事件作出处理的类往往并不符合这个条件。
2. 大量的CPU周期浪费在一些无关事件的处理上。因为按照这种模型,一些无关或不重要的事件也会被一层一层地传上去。
3. 为了处理事件,程序员必须继承事件源组件对应的类或在它的Container中写一个很大的handleEvent()方法。


在JDK1.1中,对事件的接受和处理方式作了很大的变动,其对应的事件模型又称为委托代理模型(Delegation model)。该模型的原理如下:

当事件产生时,该事件被送到产生该事件的组件去处理,而要能够处理这个事件,该组件必须登记(register)有与该事件有关的一个或多个被称为listeners的类,这些类包含了相应的方法能接受事件并对事件进行处理。
在这种模式中,事件的产生者和事件的处理者分离开来了,它们可以是不同的对象。事件的处理者,即那些listeners,是一些实施了Listener接口的类。当事件传到登记的listener时,该listener中必须有相应的方法来接受这种类型的事件并对它进行处理。


委托代理模型的优缺点:

优点:该模型较好地解决了层次模型中的问题,并提供了对Java Bean的支持。

缺点:虽然JDK的新版本也支持旧的层次模型,但层次模型和委托代理模型不能在程序中混用



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值