您似乎已经发现,第一个Google匹配是the EventListener documentation。
看到页面顶部的蓝色导航栏?第四个词是“使用”链接。转到该位置。
我找不到这个问题的答案。什么是java.util.EventListener?它是如何工作的?我已经在Google上进行了一些研究,但我只发现了这一点,这不是很清楚:所有事件侦听器接口都必须扩展的标记接口。
有人可以帮忙吗?
侦听器是一个类,包含的方法比发生某些操作时要调用的方法多。
[java.util.EventListener
是所有侦听器都应实现的标记接口(没有任何方法的接口)。]
实际上,它甚至没有增加任何功能。
因此,如果要创建自己的自定义事件(由您触发),则需要在事件发生时以某种方式调用所有侦听器方法。
例如,您可以执行以下操作:
首先,为您的侦听器创建一个扩展EventListener
的接口:
public interface MyListener extends EventListener{ void onEvent(); }
然后,您将需要创建一种机制来注册和调用所有事件:
private Collection<MyListener> listeners=new HashSet<>(); public void register(MyListener listener){ listeners.add(listener); } public void eventHappens(){ for(MyListener listener:listeners){ listener.onEvent(); } }
然后,您可以使用以下方式注册侦听器:>
public class MyListenerImpl{ private String msg; public MyListenerImpl(String data){ this.data=data; } @Override public void onEvent(){ System.out.println(msg); } }
您可以使用]进行注册>
register(new MyListenerImpl("Event occurs"));
每当调用
eventHappens()
时(如果您收到网络数据包,就可以调用它),所有注册的侦听器都将被执行。例如:
register(new MyListenerImpl("listener 1 called")); register(new MyListenerImpl("listener 2 called")); System.out.println("calling event"); eventHappens();
将打印
通话事件
被称为听众1
听了第二个听众的声音
您似乎已经发现,第一个Google匹配是the EventListener documentation。
看到页面顶部的蓝色导航栏?第四个词是“使用”链接。转到该位置。
EventListener提供类型安全的多态性。例如,java.awt.Component有一个getListeners method,它需要EventListener的子类。
EventListener实际上是该规范第6.4节中的Java Beans specification.的一部分:
由于新的Java事件模型基于方法调用,因此我们需要一种定义和分组事件处理方法的方法。我们要求在从[[java.util.EventListener。
继承的EventListener接口中定义事件处理方法,按照约定,这些EventListener接口的名称以“ Listener”结尾。想要处理给定EventListener
接口中定义的任何事件集的类都应实现该接口。
您似乎已经发现,第一个Google匹配是the EventListener documentation。
看到页面顶部的蓝色导航栏?第四个词是“使用”链接。转到该位置。