java 事件原理(给初学者开窍)转自冯忠孝 http://hi.baidu.com/32647908

2008-10-07 11:32

java 是如何处理事件的,网上搜了比较久,说的都是模式、模型、事件源、侦听器、事件处理程序等等,但我因为始终没开窍,也没看源代码。所以摸索了两三天,今天突然开窍。 记录之。

其实,jdk的swing(java.awt.*)是sun自己写的,他实现了与操作系统通信的代码。然后用了个模式封装了起来。这就是为什么你的事件必须要继承他规定的类,你的监听器接口为什么要实现他规定的Listener 接口。

package java.util;

/**
* <p>
* The root class from which all event state objects shall be derived.
* <p>
* All Events are constructed with a reference to the object, the "source",
* that is logically deemed to be the object upon which the Event in question
* initially occurred upon.
*
* @since JDK1.1
*/

public class EventObject implements java.io.Serializable {

package java.util;

/** 这是必须的顶接口
* A tagging interface that all event listener interfaces must extend.
* @since JDK1.1
*/
public interface EventListener {
}
到这里你就把java的swing事件当作是一个产品,你的定位是:二次开发程序员。 但此时你想一窥究竟或自己实现java 的桌面事件处理程序。那么用native方法与操作系统的事件队列通信,然后你把该事件包装成一个对象,你可以自由分发,自由监听,自由处理,这样爽吧。 好吧,我想说到这里,如果你在这里不开窍我已给你打开了。接下来我要看这个类:

package java.util;

/**
* <p>
* The root class from which all event state objects shall be derived.
* <p>
* All Events are constructed with a reference to the object, the "source",
* that is logically deemed to be the object upon which the Event in question
* initially occurred upon.
*
* @since JDK1.1
*/

public class EventObject implements java.io.Serializable {
。你呢,去看java的事件设计模式。 看sun是如何实现的。现在都开源了。只要你肯学,你能全部都了解的。

还有一点线程原理,我下次讲,我们还是二次开发员。 java 在windows下的二次开发,我们必须要掌握操作系统知识。

2008年10月9日16:15:37

   这一步是正式开始接触java事件原理,你的“窍”开了,上面那些全是废话,

一:今天我们来看sun是如何灵活实现事件处理的。

因为事件分为系统事件和我们定义的事件,有很多不同类型的事件,我们的事件源(能被监听(或叫能被观察))上会发生很多事件,但如果全部处理,则没必要,我们需要选择处理。但我们如何选呢?那么多事件难道都要在我们的类中定义,然后我们循环遍历?(这句话说的别扭,可能我的理解还不够,以后修改)。废话就不多说。直奔主题——观察者模式。

观察者模式 1:能被观察的对象(事件源)2:观察者自己。

一个观察者能观察一个事件。 能被观察的对象,根据自己需要添加多个观察者(内部用一个vector或list维护)。这样当一个事件发生时,如果该事件源添加了该 事件的观察者,则由观察者进行处理。否则该事件与我无关。这样灵活性大大提高。 这就是java多态的好处。用一个抽象接口,(javaswing中是Listener)来表示所有的观察者。这样我们二次开发的人,只需继承事件源,然后自由添加观察者(listener)。

下面就去看 banq 的文章(此人技术造诣太深,直到他承认大学课程有用,但他还是坚持人精力有限,应该多花时间去纯粹oo后,我才有了点好感和兴趣来宣传他一下。但去学banq精华之前,一定要记得我们要学好基础知识+打好内功,不要受他蛊惑。不然还是先别看他的内容,待到境界到一定地步后再去看他的东西,免得反受其害。慎之、慎之!——http://www.jdon.com/designpatterns/observer.htm

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值