Иллюстрированный самоучитель по Java

Создание собственного события

Вы можете создать собственное событие и определить источник и условия его возникновения.

В листинге 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 <strong>=</strong> 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);

При этом все зарегистрированные слушатели получат экземпляры событий.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.