详解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
0
投稿

猜你喜欢

  • 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
  • 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
  • Dubbo扩展点SPI实践示例解析

    2021-12-14 12:56:45
  • c#实现万年历示例分享 万年历农历查询

    2022-11-08 23:26:57
  • Unity使用摄像机实现望远镜效果

    2021-06-07 23:30:26
  • java动态代理和cglib动态代理示例分享

    2023-10-26 18:36:02
  • SpringBoot2整合activiti6环境搭建过程解析

    2023-11-09 02:27:03
  • Kotlin全局捕捉协程异常方法详解

    2022-10-09 23:27:03
  • Android使用OKhttp3实现登录注册功能+springboot搭建后端的详细过程

    2022-07-07 15:07:56
  • Java 实现判定顺序表中是否包含某个元素(思路详解)

    2023-09-11 01:03:04
  • Java实现学生成绩输出到磁盘文件的方法详解

    2021-11-08 05:24:51
  • asp之家 软件编程 m.aspxhome.com