java.util.ObservableObservable maintains a set of "observers" that are notified
whenever the Observable object changes in some significant way. An observer
may be any object that implements interface Observer (§21.8).
Note that this notification mechanism is has nothing to do with threads (§20.20) and is completely separate from the wait and notify mechanism of class Object (§20.1).
public classWhen an observable object is newly created, its set of observers is empty.Observable{ public voidaddObserver(Observer o); public voiddeleteObserver(Observer o); public voiddeleteObservers(); public intcountObservers(); public voidnotifyObservers(); public voidnotifyObservers(Object arg); protected voidsetChanged(); protected voidclearChanged(); public booleanhasChanged(); }
Two observers are considered the same if and only if the equals method (§20.1.3) returns true for them.
21.7.1 public void
addObserver(Observer o)
The observer o is added to this Observable object's set of observers, provided
that it is not the same as some observer already in the set.
21.7.2 public void
deleteObserver(Observer o)
The observer o is removed from this Observable object's set of observers.
21.7.3 public void
deleteObservers()
All observers are removed from this Observable object's set of observers.
21.7.4 public int
countObservers()
The number of observers in this Observable object's set of observers is returned.
21.7.5 public void
notifyObservers()
If this Observable object has been marked as changed, this method causes all
observers to be notified with null as the second argument; in other words, this
method is equivalent to:
notifyObservers(null)
21.7.6 public void
notifyObservers(Object arg)
If this Observable object has been marked as changed (§21.7.9), this method
causes all observers to be notified with arg as the second argument. An observer
is notified by calling its update method (§21.8.1) on two arguments: this
Observable object and arg. The mark on this object is then cleared (§21.7.8).
21.7.7 protected void
setChanged()
This Observable object is marked as having been changed; the hasChanged
method will now return true.
21.7.8 protected void
clearChanged()
This Observable object is marked as not having been changed; the hasChanged
method will now return false.
21.7.9 public boolean
hasChanged()
The result is true if and only if the setChanged method has been called for this
Observable object more recently than either the clearChanged method or the
notifyObservers method.
java.util.ObserverObserver interface if it is to be notified whenever
an Observable object has been changed. See the Observable class (§21.7) for a
discussion of how Observer objects are notified.
public interfaceObserver{ public voidupdate(Observable o, Object arg); }
21.8.1 public void
update(Observable o, Object arg)
When an Observable object has been changed and its notifyObservers
method (§21.7.6) is called, every Observer object in its set of observers is notified
by invoking its update method, passing it two arguments: the Observable
object and another argument specified by the call to the notifyObservers
method.
Contents | Prev | Next | Index
Java Language Specification (HTML generated by Suzette Pelouch on February 24, 1998)
Copyright © 1996 Sun Microsystems, Inc.
All rights reserved
Please send any comments or corrections to doug.kramer@sun.com