Perché questo:

codice:
/* An object may be observed by two or more
   observers.
*/

import java.util.*;

// This is the first observing class.
class Watcher1 implements Observer {
  public void update(Observable k, Object arg) {
    System.out.println("update() called, count is " +
                       ((Integer)arg).intValue()+ " (1)");
  }
}

// This is the second observing class.
class Watcher2 implements Observer {
  public void update(Observable k, Object arg) {
    // Ring bell when done
	  System.out.println("update() called, count is " +
              ((Integer)arg).intValue()+ " (2)");
  }
}

// This is the class being observed.
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");
      }
    }
  }
}

class Esempio {
  public static void main(String args[]) {
    BeingWatched observed = new BeingWatched();
    Watcher1 observing1 = new Watcher1();
    Watcher2 observing2 = new Watcher2();

    // add both observers
    observed.addObserver(observing1);
    observed.addObserver(observing2);

    observed.counter(10);
  }
}
da questo:

codice:
update() called, count is 10 (2)
update() called, count is 10 (1)
update() called, count is 9 (2)
update() called, count is 9 (1)
update() called, count is 8 (2)
update() called, count is 8 (1)
update() called, count is 7 (2)
update() called, count is 7 (1)
update() called, count is 6 (2)
update() called, count is 6 (1)
update() called, count is 5 (2)
update() called, count is 5 (1)
update() called, count is 4 (2)
update() called, count is 4 (1)
update() called, count is 3 (2)
update() called, count is 3 (1)
update() called, count is 2 (2)
update() called, count is 2 (1)
update() called, count is 1 (2)
update() called, count is 1 (1)
update() called, count is 0 (2)
update() called, count is 0 (1)
e non questo?

codice:
update() called, count is 10 (1)
update() called, count is 10 (2)
update() called, count is 9 (1)
update() called, count is 9 (2)
update() called, count is 8 (1)
update() called, count is 8 (2)
update() called, count is 7 (1)
update() called, count is 7 (2)
update() called, count is 6 (1)
update() called, count is 6 (2)
update() called, count is 5 (1)
update() called, count is 5 (2)
update() called, count is 4 (1)
update() called, count is 4 (2)
update() called, count is 3 (1)
update() called, count is 3 (2)
update() called, count is 2 (1)
update() called, count is 2 (2)
update() called, count is 1 (1)
update() called, count is 1 (2)
update() called, count is 0 (1)
update() called, count is 0 (2)
Nel codice originale c'era scritto:

System.out.println("Done" + '\7');

Ma che cavolo è questo '\7' !?!?! Perché Eclipse non me lo rappresenta?!?!

Il mio Eclipse è impazzito!?!?!