Создание
собственного события
Вы можете создать собственное событие
и определить источник и условия его возникновения.
В листинге 12.6 приведен пример
создания события MyEvent, любезно предоставленный Вячеславом Педаком.
Событие MyEvent говорит о начале
работы программы (START) и окончании ее работы (STOP).
Листинг 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);
При этом все зарегистрированные
слушатели получат экземпляры событий.
|