• 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 + "]";
        }
    }
  • 相关阅读:
    Android生成自定义二维码
    Android快速实现二维码扫描--Zbar
    设计模式-桥接模式
    设计模式-组合模式
    设计模式-享元模式
    设计模式-适配器模式
    设计模式-装饰者模式
    设计模式-门面(外观)模式
    设计模式-原型模式
    设计模式-单例模式
  • 原文地址:https://www.cnblogs.com/diyunpeng/p/2267580.html
Copyright © 2020-2023  润新知