コーヒー豆
まあ普通に
Bean.java
import java.beans.PropertyChangeListener; import java.beans.PropertyChangeSupport; import java.io.Serializable; public class Bean implements Serializable { private String property; private PropertyChangeSupport support = new PropertyChangeSupport(this); public String getProperty() { return property; } public void setProperty(String property) { String old = getProperty(); this.property = property; support.firePropertyChange("property", old, property); } public void addPropertyChangeListener(PropertyChangeListener listener) { support.addPropertyChangeListener(listener); } }
BeanUser.java
import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; public class BeanUser { public static void main(String[] args) { Bean bean = new Bean(); bean.addPropertyChangeListener(new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent e) { System.out.println("source: " + e.getSource() + ", property: " + e.getPropertyName() + ", old: " + e.getOldValue() + ", new: " + e.getNewValue()); } }); bean.setProperty("foo"); bean.setProperty("bar"); } }