50 likes | 150 Views
Java and Implicit Invocation. Java Event Model Illustration. Java Event Model. addListener. Event Source. register event listener. removeListener. Event Object. Event Listener. fire event. eventHandler. Illustration: Event Object.
E N D
Java and Implicit Invocation Java Event Model Illustration
Java Event Model addListener Event Source register event listener removeListener Event Object Event Listener fire event eventHandler
Illustration: Event Object public class XEventObject extends EventObject /* java.util.EventObject */ { public XEventObject (Object o) /* o = event source object */ { super(o) /* invoke the constructor of the superclass, EventObject */ … } } Public interface XListener extends EventListener /* java.util.EventListener */ { void handleX (XEventObject xeo); }
Illustration: Event Source public class XAnnouncer extends Canvas implements Runnable; { private Vector xListeners = new Vector; public XAnnouncer () { thread = new Thread(this) thread.start; } public synchronized void addXListener (xListener l) /* only one thread inside this method at once */ {xListeners.addElement(l);} public synchronized void removeXListener(xListener l) {xListeners.removeElement(l);} private void announceX() {XEventObject xeo = new XEventObject(this); /* for each xListener memberOf xListeners, invoke event handler */ xListener.handleX(xeo) } }
Illustration: Event Listener public class X1Listener extends Canvas implements XListener, Runnable; { public X1Listener (XAnnouncer xAnnouncer) { xAnnouncer.addXListener(this) } public void handleX (XEventObject xeo) { … } }