java 是如何处理事件的,网上搜了比较久,说的都是模式、模型、事件源、侦听器、事件处理程序等等,但我因为始终没开窍,也没看源代码。所以摸索了两三天,今天突然开窍。 记录之。 其实,jdk的swing(java.awt.*)是sun自己写的,他实现了与操作系统通信的代码。然后用了个模式封装了起来。这就是为什么你的事件必须要继承他规定的类,你的监听器接口为什么要实现他规定的Listener 接口。 package java.util; /** public class EventObject implements java.io.Serializable { package java.util; /** 这是必须的顶接口 package java.util; /** public class EventObject implements java.io.Serializable { 还有一点线程原理,我下次讲,我们还是二次开发员。 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 |
java 事件原理(给初学者开窍)转自冯忠孝 http://hi.baidu.com/32647908
最新推荐文章于 2021-12-10 10:27:37 发布
java 事件原理
http://hi.baidu.com/32647908/blog
2008-10-07 11:32