通过在propertyChangeSupport 中注册propertyChangeListener来获取属性改变的通知
public class Bean {
private PropertyChangeSupport propertyChangeSupport = new PropertyChangeSupport(this);
private int value;
public void addPropertyChangeListener(PropertyChangeListener propertyChangeListener){
propertyChangeSupport.addPropertyChangeListener(propertyChangeListener);
}
public void removePropertyChangeListener(PropertyChangeListener propertyChangeListener){
propertyChangeSupport.removePropertyChangeListener(propertyChangeListener);
}
public void setValue(int value) {
int oldvalue = this.value;
this.value = value;
propertyChangeSupport.firePropertyChange("value",oldvalue,value);
}
public static void main(String[] args){
Bean bean = new Bean();
bean.addPropertyChangeListener(new PropertyChangeListener() {
public void propertyChange(PropertyChangeEvent evt) {
System.out.println("oldvalue:" + evt.getOldValue());
System.out.println("newvalue:" + evt.getNewValue());
}
});
bean.setValue(10);
}
}
代码地址:git@github.com:littleBigY/codesegment.git