760e358a

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



Листинг 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);

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



Содержание раздела