当前位置: 首页 > 编程笔记 >

详解java中的PropertyChangeSupport与PropertyChangeListener

邢皓
2023-03-14
本文向大家介绍详解java中的PropertyChangeSupport与PropertyChangeListener,包括了详解java中的PropertyChangeSupport与PropertyChangeListener的使用技巧和注意事项,需要的朋友参考一下

详解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()); 
       
    } 
  } 
} 

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

 类似资料:
  • 本文向大家介绍详解Java中的 枚举与泛型,包括了详解Java中的 枚举与泛型的使用技巧和注意事项,需要的朋友参考一下 详解Java中的 枚举与泛型 一:首先从枚举开始说起 枚举类型是JDK5.0的新特征。Sun引进了一个全新的关键字enum来定义一个枚举类。下面就是一个典型枚举类型的定义:    显然,enum很像特殊的class,实际上enum声明定义的类型就是一个类。 而这些类都是类库中En

  • 本文向大家介绍Java中Hashtable类与HashMap类的区别详解,包括了Java中Hashtable类与HashMap类的区别详解的使用技巧和注意事项,需要的朋友参考一下 Hashtable类 Hashtable继承Map接口,实现一个key-value映射的哈希表。任何非空(non-null)的对象都可作为key或者value。 添加数据使用put(key, value),取出数据使用g

  • 本文向大家介绍Java中JSONObject与JSONArray的使用区别详解,包括了Java中JSONObject与JSONArray的使用区别详解的使用技巧和注意事项,需要的朋友参考一下 最近公司开发的几个项目中,后台Action向前端传递数据都是Json格式,于是对JSONObject、JSONArray简单的研究了一下,废话不多说,想使用JSONObject、JSONArray,策则在项目

  • 本文向大家介绍详解C#中的string与String,包括了详解C#中的string与String的使用技巧和注意事项,需要的朋友参考一下 目录 小写 string 与大写 String 声明与初始化 string string 的不可变性 正则 string 与原义 string string 的转义序列 格式化字符串 操作子字符串 字符串的 null 与 ""(空) 可提高性能的 String

  • 本文向大家介绍c#中(&&,||)与(&,|)的区别详解,包括了c#中(&&,||)与(&,|)的区别详解的使用技巧和注意事项,需要的朋友参考一下 对于(&&,||),运算的对象是逻辑值,也就是True/False &&相当与中文的并且,||相当于中文的或者 。(叫做逻辑运算符又叫短路运算符) 运算结果只有下列四种情况。 True  && True  = True    (左边为true,再验证右

  • 本文向大家介绍java  Callable与Future的详解及实例,包括了java  Callable与Future的详解及实例的使用技巧和注意事项,需要的朋友参考一下 java  Callable与Future Callable与 Future 两功能是Java在后续版本中为了适应多并法才加入的,Callable是类似于Runnable的接口,实现Callable接口的类和实现Runnable