详解java中的PropertyChangeSupport与PropertyChangeListener
详解java中的PropertyChangeSupport与PropertyChangeListener
java中的PropertyChangeSupport与PropertyChangeListener配合使用能够实现,绑定属性会在属性值发生变化时,通知所有相关的监听器。
javaBean:
packagecom.wang.test.property;
importjava.beans.PropertyChangeListener;
importjava.beans.PropertyChangeSupport;
publicclassTestBean{
protectedfinalPropertyChangeSupportsupport=newPropertyChangeSupport(this);
privateStringstr;
publicStringgetStr(){
returnstr;
}
publicvoidsetStr(Stringstr){
support.firePropertyChange("str",this.str,str);
this.str=str;
}
publicvoidaddPropertyChangeListener(PropertyChangeListenerlistener){
support.addPropertyChangeListener(listener);
}
publicvoidremovePropertyChangeListener(PropertyChangeListenerlistener){
support.removePropertyChangeListener(listener);
}
}
client:
packagecom.wang.test.property;
importjava.beans.PropertyChangeEvent;
importjava.beans.PropertyChangeListener;
publicclassPropertyChangeSupportTest{
publicstaticvoidmain(String[]args){
TestBeantest=newTestBean();
test.setStr("ddddd");
test.addPropertyChangeListener(newPropertyChangeListener1());
test.setStr("yyyy");
//test.addPropertyChangeListener(newPropertyChangeListener2());
//test.setStr("hhhhhhf");
}
publicstaticclassPropertyChangeListener1implementsPropertyChangeListener{
@Override
publicvoidpropertyChange(PropertyChangeEventevt){
System.out.println("1:"+evt.getPropertyName()+""+evt.getNewValue()+""+evt.getOldValue());
}
}
publicstaticclassPropertyChangeListener2implementsPropertyChangeListener{
@Override
publicvoidpropertyChange(PropertyChangeEventevt){
System.out.println("2:"+evt.getPropertyName()+""+evt.getNewValue()+""+evt.getOldValue());
}
}
}
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
热门推荐
1 如何训练狗狗不叫
2 训练狗狗不叫
3 训练狗狗随行
4 怎么训练狗狗不叫
7 训练比熊狗狗教程
10 上海狗狗训练
11 怎么训练狗狗上厕所
12 训练狗狗趴下
13 狗狗服从训练
14 训练狗狗拒食
15 训练狗狗笑
16 训练狗狗大便
17 训练狗狗立
18 训练狗狗捡东西