PropertyChangeListener接口使用初探

推荐一个开源免费java分布式开发框架:  http://www.jeesuite.com/
接口 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");
	}

}



运行结果:


OldValue:initValue
NewValue:test
tPropertyName:demoName

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值