Создание собственного события
Листинг 12.6 , Создание собственного события
// 1. Создаем свой класс события:
public class MyEvent extends java.util.EventObjectf protected int id;
public static final int START = 0, STOP = 1;
public MyEvent(Object source, int id){
super(source);
this.id = id;
}
public int getID(){ return id; }
}
// 2. Описываем Listener:
public interface MyListener extends java.util.EventListener{
public void start{MyEvent e);
public void stop(MyEvent e);
}
// 3. В теле нужного класса создаем метод fireEvent():
protected Vector listeners = new Vector();
public void fireEvent( MyEvent e){
Vector list = (Vector) listeners.clone();
for (int i = 0; i < list.sizeO; i++) {
MyListener listener = (MyListener)list.elementAt(i);
switch(e.getlDO ) {
case MyEvent.START: listener.start(e);
break;
case MyEvent.STOP: listener.stop(e);
break;
}
}
}
Все, теперь при запуске программы делаем
fi reEvent(thi s, MyEvent.START);
а при окончании
fireEvent(this, MyEvent.STOP);
При этом все зарегистрированные слушатели получат экземпляры событий.