• PropertyChangeSupport的使用


    • 使用目的

      当你需要监听对象属性的变化时,可以使用PropertyChangeSupport类来管理监听器,可以在一些关联属性的场合使用。

    • 使用示例,以下为BetaConfig对象添加了管理属性监听器的权限  
    public class BetaConfig implements Serializable{
    
        private static final long serialVersionUID = 1L;
    
        private int serverPort = 8012;
        
        
        private PropertyChangeSupport changeSupport = new PropertyChangeSupport(this);
        
        
        public void addPropertyChangeListener(final String propertyName,final PropertyChangeListener listener) {
            changeSupport.addPropertyChangeListener(propertyName, listener);
        }
        
        public void removePropertyChangeListener(final PropertyChangeListener listener) {
            changeSupport.removePropertyChangeListener(listener);
        }
        
        public int getServerPort() {
            return serverPort;
        }
        
        public void setServerPort(int serverPort) {
            //将属性的改变通知给监听,让监听器可以得知此改变
            changeSupport.firePropertyChange("serverPort", this.serverPort, serverPort);
            this.serverPort = serverPort;
        }
    }
    • 现在对BetaConfig的serverPort属性监听其变化,用addPropertyChangeListener方法,进行监听添加声明
    final BetaConfig config = new BetaConfig();
    config.addPropertyChangeListener("serverPort", new PropertyChangeListener() {          
      @Override
      public void propertyChange(PropertyChangeEvent evt) {              
          logger.info("{} {} update to {}",evt.getPropertyName(),evt.getOldValue(),evt.getNewValue());
      }
    });

      添加完监听,再执行 config.setServerPort(8000),改变其serverPort的值,监听器的propertyChange方法跟随执行。

  • 相关阅读:
    立体匹配算法(转载)
    校招总结
    tcpip概述
    Matlab2014a 提示未找到支持的编译器或 SDK的解决方法
    CSS3 实现简单轮播图
    css3实现switch开关效果
    Sass的使用和基础语法
    Git的安装和使用记录
    jQuery淡入淡出效果轮播图
    JavaScript焦点轮播图
  • 原文地址:https://www.cnblogs.com/fightingcoding/p/6396283.html
Copyright © 2020-2023  润新知