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

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

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

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

 

Сайт создан в системе uCoz