• 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

  • 相关阅读:
    【注册验证】 控制器(添加数据+后台验证)
    AJAX 简介
    我的博客生涯
    windows xp sp3 下载地址
    get、set、add、remove → (字段、属性)+(委托、事件)
    ArcObjects整体介绍
    委托
    对字符串的处理的又一个强大的工具,正则表达式
    对象序列化存在的原因
    关于文件操作的几个类
  • 原文地址:https://www.cnblogs.com/jubincn/p/3381202.html
Copyright © 2020-2023  润新知