Bean property change event listener,beanlistener,package cn.o
分享于 点击 49913 次 点评:196
Bean property change event listener,beanlistener,package cn.o
package cn.outofmemory.snippets.core;import java.beans.PropertyChangeEvent;import java.beans.PropertyChangeListener;import java.beans.PropertyChangeSupport;public class BeanPropertyChangeEventListener { public static void main(String[] args) throws Exception { Bean bean = new Bean(); bean.addPropertyChangeListener(new MyPropertyChangeListener()); bean.setProperty1("newProperty1"); bean.setProperty2(123); bean.setProperty1("newnewProperty1"); bean.setProperty2(234); } public static class MyPropertyChangeListener implements PropertyChangeListener { // This method is called every time the property value is changed public void propertyChange(PropertyChangeEvent evt) { System.out.println("Name = " + evt.getPropertyName()); System.out.println("Old Value = " + evt.getOldValue()); System.out.println("New Value = " + evt.getNewValue()); System.out.println("**********************************"); } } public static class Bean { private PropertyChangeSupport pcs = new PropertyChangeSupport(this); // Property property1 private String property1; // Property property2 private int property2; public String getProperty1() { return property1; } public void setProperty1(String property1) { pcs.firePropertyChange("property1", this.property1, property1); this.property1 = property1; } public int getProperty2() { return property2; } public void setProperty2(int property2) { pcs.firePropertyChange("property2", this.property2, property2); this.property2 = property2; } public void addPropertyChangeListener(PropertyChangeListener listener) { pcs.addPropertyChangeListener(listener); } }}
输出:
<code style="color: black; word-wrap: normal;">Name = property1Old Value = nullNew Value = newProperty1**********************************Name = property2Old Value = 0New Value = 123**********************************Name = property1Old Value = newProperty1New Value = newnewProperty1**********************************Name = property2Old Value = 123New Value = 234**********************************</code>
用户点评