More detail please refer to: http://www.javaworld.com/javaworld/jw-10-1996/jw-10-howto.html?page=3
=========================================================
import java.util.Observable;
public class Broadcast extends Observable {private int n =0;
//Constructor
public Broadcast(int n)
{
System.out.println("Broadcast constructor is invoked");
this.n=n;
}
//set method
public void setValue(int n)
{
System.out.println("Broadcast setValue is invoked, it means the broadcast changed, begin send message out");
this.n = n;
setChanged();
notifyObservers();
}
//get Method
public int getValue()
{
return this.n;
}
}
===========================================================
import java.util.Observable;
import java.util.Observer;
public class Listener implements Observer {
private Broadcast ov =null;
//Constructor method
public Listener(Broadcast ov)
{
System.out.println("Listener Constructor is invoked!");
this.ov = ov;
}
@Override
public void update(Observable obs, Object obj) {
// TODO Auto-generated method stub
if (obs == ov)
{
System.out.println("test success print broadcast's info as below:");
System.out.println(ov.getValue());
}
}
}
======================================================================
public class ObserverTester {
private Broadcast ov;
private Listener rcv;
//Construtor
public ObserverTester()
{
this.ov = new Broadcast(0);
// Listener need to be notified to listen to whom!
this.rcv = new Listener(this.ov);
// Broadcaster need to know whom should broadcast
this.ov.addObserver(this.rcv);
}
public static void main(String[] args)
{
System.out.println("ddddddddddddddddddddddd");
ObserverTester myObserableTest = new ObserverTester();
myObserableTest.ov.setValue(8);
}
}