Java Observable.setChanged()

Syntax

Observable.setChanged() has the following syntax.

protected void setChanged()

Example

In the following code shows how to use Observable.setChanged() method.


//w w  w.j a va 2 s. c  o  m
import java.util.Observable;
import java.util.Observer;

class ObservedObject extends Observable {
  private String watchedValue;

  public ObservedObject(String value) {
    watchedValue = value;
  }

  public void setValue(String value) {
    // if value has changed notify observers
    if (!watchedValue.equals(value)) {
      watchedValue = value;
      setChanged();
    }
  }
}

class MainObserver implements Observer {


  public void update(Observable obj, Object arg) {
    System.out.println("Update called");
  }
}

public class Main{
  public static void main(String[] args) {
    ObservedObject watched = new ObservedObject("Original Value");
    MainObserver watcher = new MainObserver();

    watched.addObserver(watcher);

    watched.setValue("New Value");

    if (watched.hasChanged())
      System.out.println("Value changed");
    else
      System.out.println("Value not changed");
  }

}

The code above generates the following result.