zoukankan      html  css  js  c++  java
  • PropertyChangeSupport 监听器模式的应用

    PropertyChangeSupport 类实现的监听器功能 ,它是java jdk自带的一个类,用于监听某个对象属性的改变来触发相应信息,具体看代码介绍

    import java.beans.PropertyChangeEvent;
    import java.beans.PropertyChangeListener;
    import java.beans.PropertyChangeSupport;
    
    class EventSource {
        private String name;
        /* 
         * 在事件源的地方添加一个PropertyChangeSupport对象,间接地由它负责添加监听、激发事件 
         */  
        private PropertyChangeSupport listernts=new PropertyChangeSupport(this);  
          
        /** 
         * 在事件源上添加监听,实际上是在PropertyChangeSupport对象上添加监听 
         */  
        public void addListner(PropertyChangeListener listern) {  
            listernts.addPropertyChangeListener(listern);  
        }    
        /** 
         * 同上 
         */  
        public void removeListner(PropertyChangeListener listern) {  
            listernts.removePropertyChangeListener(listern);  
        }  
        public String getName() {  
            return name;  
        }  
      
        /** 
         * 事件源发生变化时,也是通过PropertyChangeSupport对象把事件发送到监听者上的 
         */  
        public void setName(String name) {  
            this.name = name;  
            // 触发事件源,监听者得到触发变化
            listernts.firePropertyChange(null,null,getName());  
        } 
    }
    
    class  Monitor implements PropertyChangeListener{
        @Override
        public void propertyChange(PropertyChangeEvent evt) {
            System.out.println("事件源 发生变化,请做相应处理!");
        }    
    }
    
    public class TestPropertyChangeSupport {
        public static void main(String[] args) {
            EventSource eventSource = new EventSource();
            Monitor monitor = new Monitor();
             //在事件源上添加监听,发生变化时就会调用propertyChange方法
            eventSource.addListner(monitor);
            
            eventSource.setName("更改name属性值");
        }
    }

     打印结果:   事件源 发生变化,请做相应处理!

  • 相关阅读:
    spock框架进行单元测试的学习与实践
    给List排序( list sort)
    SQLITE入门至精通
    SQL查询重复记录
    [转]检查本地DNS服务器是否正常工作及解决方法
    [转]HTC G11 ROOT获取权限教程
    [转]取当前日期是在一年中的第几周
    如何使用两台 NETGEAR 无线路由器进行无线中继(WDS)
    [转]string表达式运算
    [转]WM手机,关于如何让手机一直运行下去,而不进入待机
  • 原文地址:https://www.cnblogs.com/myseries/p/8954738.html
Copyright © 2011-2022 走看看