当前位置: 代码迷 >> Java相关 >> [求助]有关事件处理
  详细解决方案

[求助]有关事件处理

热度:254   发布时间:2005-01-23 17:33:00.0
[求助]有关事件处理
小弟在看书时遭受挫折。
敢问各位高手何为事件类,监听?
书中大量涉及“监听器”,“监听者”等词汇。
我现在还不知道这些是什么东东?有什么用?怎么用?
希望有高手能高抬贵手,能帮小弟一下!
越详细越好,转贴的也行啊
搜索更多相关的解决方案: 看书  希望  

----------------解决方案--------------------------------------------------------
java事件监听机制一些书上概念居多,结合实际来举例子。比如你打官司之前要请私人律师,之前的和私人律师签订合同。当你吃了官司时,这时你就得给你的私人律师打电话。那么你的私人律师就会帮你打官司,你就不用来打官司了。
同样道理java的事件监听机制就是,当你点击一个按钮时,发生点击事件(就好比吃了官司)。如果这个事件没有注册监听器(之前没有请私人律师),那么点击以后就不会有任何反应(没有请律师也就不好打官司)。而监听器就是好比私人律师,但是点击事件的监听器只监听点击事,就好比律师只管打官司,有了病只能找私人医生律师不管瞧病。不过不绝对监听器本身是一个类,一个类就好像一个人。虽然说现实世界里,全能的人很少有。但不是没有,也就是说一个类可以实现多个监听器接口(接口的概念楼主应该明白吧?)。这个类也就能够既能监听点击事件,也能监听鼠标移动事件等。相当于这个人既是律师又能当医生的道理一个样。也就是说在java中当发生事件时,会自动产生一个事件对象。就像发生官司时就有官司这个对象,得了病就有病这个对象一样。这些对象得到事先注册的监听器中,调用相应监听器的代码来处理。就跟上面说的发生官司时得让之前签订好合同的律师,来处理。得了病得找私人医生的道理一样。这么讲够明白的了吧?这个就是java的事件监听机制的基本原理。
----------------解决方案--------------------------------------------------------
很形象!
----------------解决方案--------------------------------------------------------
生动!
形象!
如此活泼的方式来解释事件的监听真是提壶罐顶,一语道破天机。
在下明白了!
书上在讲监听的优点的同时,还说了好多关于基于继承的事件模型的坏话,继承事件模型真的有那么差劲吗?它都有哪些弊端?
----------------解决方案--------------------------------------------------------
监听器有一种叫监听适配器,适配器本身是一个类。这个类实现了对应监听器接口的所有方法,因为java有个缺点就是继承父类只能单一继承。也就是一个类只能继承一个类,不能一个类继承2个或多个。但是适配器有它的好处,那就是比如要做出一个window事件的监听器。如果实现接口的方法来做,就得写一大堆方法(用不着的也得写)因为java接口规定了,实现接口的类必须实现接口中的所有方法。适配器(也就是继承事件模型)的价值就在于节省编码的量,不用再实现所有方法。因为适配器是类,子类继承后只重写特定的方法就行。节省代码量。另外的一个价值就在于匿名类(这个楼主应该知道吧就是没有类名的类),用这个可以随时造出监听器。这时适配器就可以发挥节省代码的优势,2-3行就能做出监听器方便快捷。
----------------解决方案--------------------------------------------------------
继承事件模型或者实现接口真正编写程序时,为了简便两者可以互相来用。这个什么时候用是具体程序,具体分析根据编码的要求来做。
----------------解决方案--------------------------------------------------------
顶!
----------------解决方案--------------------------------------------------------
更正一下错误,基于继承的事件模型与适配器不是一个概念。这点是我理解错了楼主的意思,所以为了不做误导特地说明一下。无论是适配器还是接口都是基于授权的事件模型,也就是我在2楼讲的。而继承的事件模型一些书上说它不好,也不是并无道理。毕竟基于继承的事件模型在某些方面的确不好,比如java的单继承限制。所以一些时候继承的事件模型,在编码上过于死板。而且有些结构化,这点可能是违背了java面向对象语言的特点。所以不会受到推荐,为此特地澄清这个概念。因为毕竟这个上面误导出学者是不应该的。
----------------解决方案--------------------------------------------------------
学习Java没有什么捷径,也没有什么谁讲的懂谁得不懂(当然会有人讲的细致一点),在我看来,就是多做,我刚学事件的时候,什么都不知道。适配器,监听器,全都混在一起。我就找了一个例题作,可以说作了N遍,也就都会了,至今都还记得那个例题。
----------------解决方案--------------------------------------------------------
不错!高手境界。

----------------解决方案--------------------------------------------------------
  相关解决方案