zoukankan      html  css  js  c++  java
  • 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方法跟随执行。

  • 相关阅读:
    个人冲刺二(2)
    个人冲刺二(1)
    三个和尚观后感
    每日总结
    个人冲刺(10)
    个人冲刺(9)
    个人冲刺(8)
    个人冲刺(7)
    个人冲刺(6)
    下次视频面试前把电脑摄像头擦干净吧
  • 原文地址:https://www.cnblogs.com/fightingcoding/p/6396283.html
Copyright © 2011-2022 走看看