Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 自定义扩展'EventObject'和'EventListener'有什么好处`_Java_Events - Fatal编程技术网

Java 自定义扩展'EventObject'和'EventListener'有什么好处`

Java 自定义扩展'EventObject'和'EventListener'有什么好处`,java,events,Java,Events,自定义扩展EventObject和EventListener 用于活动交付?如果我使用接口而不扩展Eventlistener和EventObject,我看不出有什么不同 参考资料:-主要好处包括包含基本合同EventObject有一个指示事件源的getSource方法。这可能看起来不多,但大多数人喜欢知道事件的起源,这样他们就可以决定他们应该做什么,这样你就不用重新发明轮子了 EventListener为您提供了使用EventListenerList的功能,它是JComponent中受保护的字段

自定义扩展
EventObject
EventListener
用于活动交付?如果我使用接口而不扩展
Eventlistener
EventObject
,我看不出有什么不同


参考资料:-

主要好处包括包含基本合同
EventObject
有一个指示事件源的
getSource
方法。这可能看起来不多,但大多数人喜欢知道事件的起源,这样他们就可以决定他们应该做什么,这样你就不用重新发明轮子了


EventListener
为您提供了使用
EventListenerList
的功能,它是
JComponent
中受保护的
字段,这意味着您不需要设计自己的管理代码来管理您可能设计的任何事件侦听器界面,如果您是从基于
JComponent
的组件扩展而来,您甚至不需要创建自己的
EventListenerList

您是对的,如果我是从基于JComponent的组件进行扩展,这对我来说是完全有意义的。然而,根据我的参考资料,它没有应用
getSource
方法(一切都是他做的),它只是与EventObject和EventListener无关,这是我怀疑的(根据您的参考,
SpeedEvent
使用
super(源代码);
,因为原始海报是否打算使用它是另一个问题。这可以归结为实现,但提供事件源IMHO始终是一个好主意,因为您可能会听到多个事件制作人,只是说当
myCar.speedUp(50)时是否可能;
,它直接触发侦听器?(不应用
processSpeedEvent(新的SpeedEvent(this,this.maxSpeed,this.minSpeed,this.currentSpeed))是的,但通常情况下,您要做的是提供一个
fire
事件方法。这意味着,如果任何主体重写了您的类,并且出于某种原因需要引发相关事件,那么它们可以。