Is there an event in Java that fires when a value changes? Like in this example
public class Example{
public String var1 = \"Something\";
public Int var2
I think you might be looking for the "observer" design pattern (Wikipedia Entry)
This is implemented in java via extending Obserable and having objects that want to be notified implement the Observer interface.
The answer is not to expose your fields publicly to start with. Make the fields private, introduce getter and setter methods, and you can call whatever you like within the setter if the value's changed.
public class Example {
private String var1 = "Something";
public String getVar1() {
return var1;
}
public void setVar1(String var1) {
// TODO: null guards
if (var1.equals(this.var1)) {
// No-op - no need to do anything
return;
}
this.var1 = var1;
notifyListenersOfChangeToVar1();
}
}
Check out the PropertyChangeListener http://download.oracle.com/javase/tutorial/uiswing/events/propertychangelistener.html