Dies ist nur in einer linux-Umgebung, nicht in Windows95 möglich.
Zuächst werden ein AlterEvent-Objekt und ein AlterListener-Interface
erstellt:
public class AlterEvent extends java.util.EventObject{ AlterEvent(Object source){ super(source); } } public interface AlterListener extends java.util.EventListener{ void alterPerformed(AlterEvent ae); }
Beide werden übersetzt und in jar-Files überführt. Letztere werden in das
jars-Unterverzeichnis gebracht.
Javabeans, die alternative Events feuern, benötigen:
import java.util.Vector; import java.util.*; implement AlterListener
public synchronized void addAlterListener(AlterListener l) { getListeners.addElement(l); } public synchronized void removeAlterListener(AlterListener l) { getListeners.removeElement(l); }
public void doAction() { Vector destis; synchronized (this) { destis = (Vector) getListeners.clone(); } for (int i=0; i < 20000; i++){ x = x+i;} AlterEvent alterEvt = new AlterEvent(this); for (int i = 0; i < destis.size(); i++) { AlterListener desti = (AlterListener)destis.elementAt(i); desti.alterPerformed(alterEvt); } }
public void alterPerformed(AlterEvent ae){ System.out.println("IfelBean: alterPerformed\n"); }
private Vector getListeners = new Vector(); private AlterEvent aevt;
Javabeans, die alternative Events empfangen, benötigen
eine Methode mit dem Argument:
AlterEvent aevt
AlterEvent.class und AlterEventListener müssen in die
manifest-Files derjenigen Beans aufgenommen werden, die den
AlterEvent verwenden.