zoukankan      html  css  js  c++  java
  • PropertyChangeListener接口使用初探

    转自:http://vakinge.iteye.com/blog/441908


    接口 java.beans.PropertyChangeListener 
    顾名思义监听属性改变事件,最近做一些东西需要用到数据绑定相关东西,用到了这个接口。 
    这里做一个简单DEMO。 

    Java代码  收藏代码
    1. public class DemoBeans {  
    2.   
    3.     private String demoName;  
    4.       
    5.     PropertyChangeSupport listeners = new PropertyChangeSupport(this);  
    6.   
    7.     public DemoBeans() {  
    8.         demoName = "initValue";  
    9.     }  
    10.   
    11.   
    12.     public String getDemoName() {  
    13.         return demoName;  
    14.     }  
    15.       
    16.   
    17.     public void setDemoName(String demoName) {  
    18.         String oldValue = this.demoName;  
    19.         this.demoName = demoName;  
    20.         //发布监听事件  
    21.         firePropertyChange("demoName", oldValue, demoName);  
    22.           
    23.     }  
    24.       
    25.     public void addPropertyChangeListener(PropertyChangeListener listener) {  
    26.         listeners.addPropertyChangeListener(listener);  
    27.     }  
    28.       
    29.     public void removePropertyChangeListener(PropertyChangeListener listener){  
    30.         listeners.addPropertyChangeListener(listener);  
    31.     }  
    32.       
    33.   
    34.     /** 
    35.      * 触发属性改变的事件 
    36.      */  
    37.     protected void firePropertyChange(String prop, Object oldValue, Object newValue) {  
    38.         listeners.firePropertyChange(prop, oldValue, newValue);  
    39.     }  
    40.      
    41. }  


    测试类: 
    Java代码  收藏代码
    1. public class Main {  
    2.   
    3.     /** 
    4.      * @param args 
    5.      */  
    6.     public static void main(String[] args) {  
    7.         DemoBeans beans = new DemoBeans();  
    8.         beans.addPropertyChangeListener(new PropertyChangeListener(){  
    9.   
    10.             public void propertyChange(PropertyChangeEvent evt) {  
    11.                 System.out.println("OldValue:"+evt.getOldValue());  
    12.                 System.out.println("NewValue:"+evt.getNewValue());  
    13.                 System.out.println("tPropertyName:"+evt.getPropertyName());  
    14.             }});  
    15.         beans.setDemoName("test");  
    16.     }  
    17.   
    18. }  


    运行结果:
     

    OldValue:initValue 
    NewValue:test 
    tPropertyName:demoName

  • 相关阅读:
    理解 es7 async/await
    es6 Promise对象
    es6 Object.assign(target, ...sources)
    关于索引的一些知识
    关于this和$(this)
    js自定data-*和jquery的data()用法
    unslider插件实现轮播图效果
    清除浮动的方法
    事件绑定、事件监听和事件委托
    node.js的安装及配置
  • 原文地址:https://www.cnblogs.com/jubincn/p/3381202.html
Copyright © 2011-2022 走看看