This is a utility class that can be used by beans that support bound properties. It manages a list of listeners and dispatches
PropertyChangeEvent
s to them. You can use an instance of this class as a member field of your bean and delegate these types of work to it. The
PropertyChangeListener
can be registered for all properties or for a property specified by name.
Here is an example of PropertyChangeSupport
usage that follows the rules and recommendations laid out in the JavaBeans™ specification:
public class MyBean {
private final PropertyChangeSupport pcs = new PropertyChangeSupport(this);
public void addPropertyChangeListener(PropertyChangeListener listener) {
this.pcs.addPropertyChangeListener(listener);
}
public void removePropertyChangeListener(PropertyChangeListener listener) {
this.pcs.removePropertyChangeListener(listener);
}
private String value;
public String getValue() {
return this.value;
}
public void setValue(String newValue) {
String oldValue = this.value;
this.value = newValue;
this.pcs.firePropertyChange("value", oldValue, newValue);
}
[...]
}
A PropertyChangeSupport
instance is thread-safe.
This class is serializable. When it is serialized it will save (and restore) any listeners that are themselves serializable. Any non-serializable listeners will be skipped during serialization.