Mega Code Archive

 
Categories / Java Tutorial / Swing Event
 

Event source and listener

import java.util.ArrayList; import java.util.EventListener; import java.util.EventObject; abstract class TestEventSource {   public abstract void addListener(TestEventListener l);   public abstract void removeListener(TestEventListener l);   public abstract void fireEvent(java.util.EventObject o);   public void test() {     addListener(new TestEventListener("A"));     fireEvent(new java.util.EventObject(this));   } } class TestEventListener implements EventListener {   String id;   public TestEventListener(String id) {     this.id = id;   }   public void handleEvent(EventObject o) {     System.out.println(id + " called");     if (id.equals("C")) {       ((TestEventSource) o.getSource()).removeListener(this);     }   } } public class Main extends TestEventSource {   ArrayList listeners = new ArrayList();   public void addListener(TestEventListener l) {     listeners.add(l);   }   public void removeListener(TestEventListener l) {     listeners.remove(l);   }   public void fireEvent(EventObject o) {     for (int i = 0; i < listeners.size(); i++) {       TestEventListener l = (TestEventListener) listeners.get(i);       l.handleEvent(o);     }   }   public static void main(String[] args) {     Main pfles = new Main();     pfles.test();   } }