zoukankan      html  css  js  c++  java
  • java.beans.PropertyChangeListener 规格严格

    Swing里面用的多啊。

    在网上找个Demo弄上来:

    import java.beans.PropertyChangeListener;
    import java.beans.PropertyChangeSupport;

    public class EventManager {
        PropertyChangeSupport PCS = new PropertyChangeSupport(this);

        // add listener
        public void addPropertyChangeListener(PropertyChangeListener pcl) {
            PCS.addPropertyChangeListener(pcl);
        }

        // Trigger property change events
        protected void triggerPropertyChange(String propertyName, Object oldValue,
            Object newValue) {
            PCS.firePropertyChange(propertyName, oldValue, newValue);
        }

        // remove listener
        protected void removeProtertyChange(PropertyChangeListener pcs) {
            PCS.removePropertyChangeListener(pcs);
        }
    }
    import java.beans.PropertyChangeEvent;
    import java.beans.PropertyChangeListener;

    public class ChangeListener implements PropertyChangeListener {

        public void propertyChange(PropertyChangeEvent evt) {
            System.out.println(evt.getPropertyName());
            System.out.println("NewValue=" + evt.getNewValue());
            System.out.println("OldValue=" + evt.getOldValue());
            System.out.println(evt.getPropagationId());
            System.out.println("-------------------------");
            Object bean = evt.getSource();
            System.out.println(bean);
        }

    }
    public class Bean extends EventManager {
        int id;
        String name;

        public int getId() {
            return id;
        }

        public void setId(int id) {
            int oldValue = this.id;
            this.id = id;
            triggerPropertyChange("id", oldValue, id);
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            String oldValue = this.name;
            this.name = name;
            triggerPropertyChange("name", oldValue, name);
        }

        public static void main(String args[]) {
            Bean bean = new Bean();
            // 把监听器注册到这个bean上
            bean.addPropertyChangeListener(new ChangeListener());
            bean.setId(1111);
            bean.setName("gary");
        }

        /* (non-Javadoc)
         * @see java.lang.Object#toString()
         
    */
        public String toString() {
            return "Bean [id=" + id + ", name=" + name + "]";
        }
    }
  • 相关阅读:
    什么是索引?怎么创建索引?索引的使用原则?
    Cookie和Session的区别
    HashMap、Hashtable、ConcurrentHashMap的原理与区别
    vxlogcfg vxlogcfg – 修改统一日志记录配置设置
    磁盘阵列RAID介绍及计算公式
    二叉树的最近公共祖先 递归
    LRU 缓存机制
    从前序与中序遍历序列构造二叉树 递归
    MySQL 数据结构常用命令
    Node.Js 搭建简单的 EggJs 示例项目
  • 原文地址:https://www.cnblogs.com/diyunpeng/p/2267580.html
Copyright © 2011-2022 走看看