http://vakinge.iteye.com/blog/441908
接口 java.beans.PropertyChangeListener
顧名思義監聽屬性改變事件,最近做一些東西需要用到數據綁定相關東西,用到了這個接口。這裏做一個簡單DEMO。
public class DemoBeans {
private String demoName;
PropertyChangeSupport listeners = new PropertyChangeSupport(this);
public DemoBeans() {
demoName = "initValue";
}
public String getDemoName() {
return demoName;
}
public void setDemoName(String demoName) {
String oldValue = this.demoName;
this.demoName = demoName;
//發佈監聽事件
firePropertyChange("demoName", oldValue, demoName);
}
public void addPropertyChangeListener(PropertyChangeListener listener) {
listeners.addPropertyChangeListener(listener);
}
public void removePropertyChangeListener(PropertyChangeListener listener){
listeners.addPropertyChangeListener(listener);
}
/**
* 觸發屬性改變的事件
*/
protected void firePropertyChange(String prop, Object oldValue, Object newValue) {
listeners.firePropertyChange(prop, oldValue, newValue);
}
}
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
DemoBeans beans = new DemoBeans();
beans.addPropertyChangeListener(new PropertyChangeListener(){
public void propertyChange(PropertyChangeEvent evt) {
System.out.println("OldValue:"+evt.getOldValue());
System.out.println("NewValue:"+evt.getNewValue());
System.out.println("tPropertyName:"+evt.getPropertyName());
}});
beans.setDemoName("test");
}
}