package com.a;
/**
Title:属性监听
Description:
Copyright: Copyright (c) 2009
Company:
@author
@version 1.0
*/
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.io.Serializable;
/**
* 这是一个实用工具类,支持绑定 (bound) 属性的 bean 可以使用该类。
* 可以使用此类的实例作为 bean 的成员字段,并将各种工作委托给它。 此类是可序列化的。
* 在对它进行序列化时,它将保存(并恢复)本身可序列化的所有侦听器。在序列化期间,将跳过所有不可序列化的侦听器。
* @author Administrator
*
*/
public class PropertyChangeSupportTest {
//临时的属性变量,为了侦听属性值的变化,该值的状态不再存储,每次的应用都是起初的状态,即変元
transient protected PropertyChangeSupport listeners = new PropertyChangeSupport(this);
/**
* 向侦听器列表添加一个 PropertyChangeListener
* @param listener 侦听器
*/
public void addPropertyChangeListener(PropertyChangeListener listener)
{
if(listener == null)
{
throw new IllegalArgumentException();
}
listeners.addPropertyChangeListener(listener);
}
/**
* 通知所有已注册侦听器的绑定属性更新,如果属性值发生改变,就会触发PropertyChangeEvent事件
* @param prop 被更改属性的属性名称
* @param old 属性的旧值
* @param newValue 属性的新值
*/
public void firePropertyChangeListener(String prop,Object old,Object newValue)
{