Listeners are objects that sign on to another objects listener-list.
That object checks its listeners-list when events occur and informs the listenersof the event using a defined interface. Here is a simple example, note: this must be coded in three separate java-files...
Code:
/**
* the interface used by the listener
*/
public interface BroadcastUser {
public void changeWasMade (Object change);
}
/**
* The class implementing the listener interface
*/
public class AnyClass implements BroadcastUser {
protected Broadcaster bc=new Broadcaster();
public AnyClass () {
bc.addBroadCastUser(this);
}
public void changeWasMade (Object change) {
System.out.println("Change reported:"+change.toString());
}
}
/**
* The class that reports to the listeners
*/
public class Broadcaster {
ArrayList broadCastListeners=new ArrayList();
public Broadcaster() {}
// this class only recognizes its listeners as BroadcastUsers
public void addBroadCastUser(BroadcastUser bu) {
this.broadCastListeners.add(bu);
}
// in this method the change (or whatevver) is reported
// to all the registered listeners
public void aChangeMethod(Object aChange) {
for (int i=0; i<boadCastListeners; i++) {
BroadcastUser bu=(BroadcastUser)broadCastListeners.get(i);
bu.changeWasMade(aChange);
}
}
}
Bookmarks