PropertyChangeListener

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");
	}

}


發佈了30 篇原創文章 · 獲贊 13 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章