This class is the superclass for classes that want to provide notifications of state changes to interested Observer objects. Register an Observer to be notified by passing it to the addObserver( ) method of an Observable , and de-register it by passing it to the deleteObserver( ) method. You can delete all observers registered for an Observable with deleteObservers( ) , and can find out how many observers have been added with countObservers( ) . Note that there is not a method to enumerate the particular Observer objects that have been added. An Observable subclass should call the protected method setChanged( ) when its state has changed in some way. This sets a "state changed" flag. After an operation or series of operations that may have caused the state to change, the Observable subclass should call notifyObservers( ) , optionally passing an arbitrary Object argument. If the state changed flag is set, this notifyObservers( ) calls the update( ) method of each registered Observer (in some arbitrary order), passing the Observable object, and the optional argument, if any. Once the update( ) method of each Observable has been called, notifyObservers( ) calls clearChanged( ) to clear the state changed flag. If notifyObservers( ) is called when the state changed flag is not set, it does not do anything. You can use hasChanged( ) to query the current state of the changed flag. The Observable class and Observer interface are not commonly used. Most applications prefer the event-based notification model defined by the JavaBeans component framework and by the EventObject class and EventListener interface of this package. public class Observable { // Public Constructors public Observable ( ); // Public Instance Methods public void addObserver (Observer o ); synchronized public int countObservers ( ); synchronized public void deleteObserver (Observer o ); synchronized public void deleteObservers ( ); synchronized public boolean hasChanged ( ); synchronized public void notifyObservers ( ); public void notifyObservers (Object arg ); // Protected Instance Methods protected void clearChanged ( ); synchronized protected void setChanged ( ); synchronized } Passed ToObserver.update( ) |