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.