详解java中的PropertyChangeSupport与PropertyChangeListener
作者:lqh 时间:2023-10-20 06:19:27
详解java中的PropertyChangeSupport与PropertyChangeListener
java中的PropertyChangeSupport与PropertyChangeListener配合使用能够实现,绑定属性会在属性值发生变化时,通知所有相关的 * 。
javaBean:
package com.wang.test.property;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
public class TestBean {
protected final PropertyChangeSupport support = new PropertyChangeSupport(this);
private String str;
public String getStr() {
return str;
}
public void setStr(String str) {
support.firePropertyChange("str", this.str, str);
this.str = str;
}
public void addPropertyChangeListener(PropertyChangeListener listener) {
support.addPropertyChangeListener(listener);
}
public void removePropertyChangeListener(PropertyChangeListener listener) {
support.removePropertyChangeListener(listener);
}
}
client:
package com.wang.test.property;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
public class PropertyChangeSupportTest {
public static void main(String[] args) {
TestBean test = new TestBean();
test.setStr("ddddd");
test.addPropertyChangeListener(new PropertyChangeListener1());
test.setStr("yyyy");
//test.addPropertyChangeListener(new PropertyChangeListener2());
//test.setStr("hhhhhhf");
}
public static class PropertyChangeListener1 implements PropertyChangeListener{
@Override
public void propertyChange(PropertyChangeEvent evt) {
System.out.println( "1: " + evt.getPropertyName() + " " + evt.getNewValue() + " " + evt.getOldValue());
}
}
public static class PropertyChangeListener2 implements PropertyChangeListener{
@Override
public void propertyChange(PropertyChangeEvent evt) {
System.out.println( "2: " + evt.getPropertyName() + " " + evt.getNewValue() + " " + evt.getOldValue());
}
}
}
来源:http://hejiawangjava.iteye.com/blog/2391916
标签:java,PropertyChangeSupport
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
timespan使用方法详解
2022-01-19 07:04:50
.NET单点登陆的实现方法及思路
2023-06-10 10:13:53
Java 语言实现清除带 html 标签的内容方法
2021-07-29 23:47:43
Android TextView字体颜色设置方法小结
2023-02-22 14:44:52
Android应用开发中WebView的常用方法笔记整理
2021-06-29 04:29:39
常用Hash算法(C语言的简单实现)
2021-09-10 05:23:47
修改idea的这些启动参数,令你的idea健步如飞
2021-11-14 14:48:11
![](https://img.aspxhome.com/file/2023/2/77402_0s.jpg)
java旋转二维数组实例
2021-07-04 05:39:48
Java中Lambda表达式的进化之路详解
2023-04-19 21:17:42
Java中流的有关知识点详解
2022-07-21 15:38:21
Android监听输入法弹窗和关闭的实现方法
2022-06-21 02:58:39
![](https://img.aspxhome.com/file/2023/8/138918_0s.png)
Dubbo扩展点SPI实践示例解析
2021-12-14 12:56:45
c#实现万年历示例分享 万年历农历查询
2022-11-08 23:26:57
Unity使用摄像机实现望远镜效果
2021-06-07 23:30:26
![](https://img.aspxhome.com/file/2023/4/106464_0s.jpg)
java动态代理和cglib动态代理示例分享
2023-10-26 18:36:02
SpringBoot2整合activiti6环境搭建过程解析
2023-11-09 02:27:03
![](https://img.aspxhome.com/file/2023/9/59379_0s.png)
Kotlin全局捕捉协程异常方法详解
2022-10-09 23:27:03
![](https://img.aspxhome.com/file/2023/6/139046_0s.png)
Android使用OKhttp3实现登录注册功能+springboot搭建后端的详细过程
2022-07-07 15:07:56
![](https://img.aspxhome.com/file/2023/6/138086_0s.png)
Java 实现判定顺序表中是否包含某个元素(思路详解)
2023-09-11 01:03:04
![](https://img.aspxhome.com/file/2023/4/58474_0s.png)
Java实现学生成绩输出到磁盘文件的方法详解
2021-11-08 05:24:51
![](https://img.aspxhome.com/file/2023/2/125562_0s.jpg)