Ie, I have seen many places that in Java it is usually enough to be a “listener” of an event, rather than its “source.” It’s an interesting example of the “source of the event.”
1 answer
Here is an example.
class MyEvent extends EventObject { public MyEvent(Object source) { super(source); } } interface MyEventListener extends EventListener { public void myEventOccurred(MyEvent evt); } class MyClass { protected EventListenerList listenerList = new EventListenerList(); public void addMyEventListener(MyEventListener listener) { listenerList.add(MyEventListener.class, listener); } public void removeMyEventListener(MyEventListener listener) { listenerList.remove(MyEventListener.class, listener); } void fireMyEvent(MyEvent evt) { Object[] listeners = listenerList.getListenerList(); for (int i = 0; i < listeners.length; i = i+2) { if (listeners[i] == MyEventListener.class) { ((MyEventListener) listeners[i+1]).myEventOccurred(evt); } } } } public class Events { public static void main(String[] argv) throws Exception { MyClass c = new MyClass(); c.addMyEventListener(new MyEventListener() { public void myEventOccurred(MyEvent evt) { System.out.println("fired"); } }); c.fireMyEvent(new MyEvent(new Object())); } } - Thank you, for example - ZdraviSmisl
|