创建一个自定义Event |
|
创建一个自定义Event |
class MyEventextends EventObject { public MyEvent(Object source) { super(source); } }
interface MyEventListenerextends EventListener { publicvoid myEventOccurred(MyEvent evt); }
class MyClass { protected EventListenerListlistenerList =new EventListenerList();
publicvoid addMyEventListener(MyEventListener listener) { listenerList.add(MyEventListener.class, listener); }
publicvoid 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); } } } }
publicclass Main { publicstaticvoid main(String[] argv)throws Exception { MyClass c = new MyClass(); c.addMyEventListener(new MyEventListener() { publicvoid myEventOccurred(MyEvent evt) { System.out.println("fired"); } });
} } |