Java by API/java.util/Observable

Материал из Java эксперт
Перейти к: навигация, поиск

extends Observable

   <source lang="java">

/*

* Output: 

update() called, count is 10 update() called, count is 9 update() called, count is 8 update() called, count is 7 update() called, count is 6 update() called, count is 5 update() called, count is 4 update() called, count is 3 update() called, count is 2 update() called, count is 1 update() called, count is 0

*  
*/

import java.util.Observable; import java.util.Observer; class Watcher implements Observer {

 public void update(Observable obj, Object arg) {
   System.out.println("update() called, count is "
       + ((Integer) arg).intValue());
 }

} class BeingWatched extends Observable {

 void counter(int period) {
   for (; period >= 0; period--) {
     setChanged();
     notifyObservers(new Integer(period));
     try {
       Thread.sleep(100);
     } catch (InterruptedException e) {
       System.out.println("Sleep interrupted");
     }
   }
 }

} public class MainClass {

 public static void main(String args[]) {
   BeingWatched observed = new BeingWatched();
   Watcher observing = new Watcher();
   observed.addObserver(observing);
   observed.counter(10);
 }

}

      </source>