JAvaBeanプロパティリスニングメカニズム
説明:Javaクラスは3つあります
**********************************************************
**********************************************************
************************************************************
************************************************************
package com.a;
/**
<p>Title: </p>
<p>Description: </p>
<p>Copyright: Copyright (c) 2009</p>
<p>Company: </p>
@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)
{
listeners.firePropertyChange(prop, old, newValue);
}
/**
* PropertyChangeListener
* listener , ,
* @param listener
*/
public void removePropertyChangeListener(PropertyChangeListener listener)
{
listeners.removePropertyChangeListener(listener);
}
}//end class
**********************************************************
**********************************************************
package com.a;
import java.rmi.Remote;
/**
<p>Title: </p>
<p>Description: </p>
<p>Copyright: Copyright (c) 2009</p>
<p>Company: </p>
@author
@version 1.0
*/
public class BeanTest extends PropertyChangeSupportTest {
// ,
public static final String TEST = "name";
//
private static String name =" null,null,null,null,null,null,null,null";
// private String age ="0";
public String getName() {
return this.name;
}
public void setName(String name) {
// ,if ,
if(this.name.equals(name))
{
// System.out.println(this.name);
// System.out.println(name);
System.out.println("BeanTest name ");
// ,
return;
}
// , PropertyChangeEvent
// null ,
this.firePropertyChangeListener(this.TEST, this.getName(), name);
// , propertyChange()
// System.out.println("fire propertyChange :"+this.getName());
// , , fire
this.name = name;
// System.out.println(this.name);
// this.firePropertyChangeListener(this.name, null, name);
}
// public String getAge() {
// return age;
// }
//
// public void setAge(String age) {
// if(this.age.equals(age))
// {
// System.out.println("BeanTest age ");
// return;
// }
// this.firePropertyChangeListener("age", this.getAge(), age);
//
// this.age = age;
// }
}//end class
************************************************************
************************************************************
package com.a;
/**
<p>Title: </p>
<p>Description: </p>
<p>Copyright: Copyright (c) 2009</p>
<p>Company: </p>
@author
@version 1.0
*/
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import com.byh.pubsub.JMSpubsub;
/**
* listeners propertyChange(PropertyChangeEvent evt)
* propertyChange ,
* PropertyChangeListener PropertyChangeListener
*/
public class BeanTestListener implements PropertyChangeListener {
/**
* , , firePropertyChangeListener
* evt
*/
// 8.1
// private String cto;
public void propertyChange(PropertyChangeEvent evt) {
//
// System.out.println(BeanTest.TEST);
// getPropertyName() , 。 , null
if(evt.getPropertyName().equals(BeanTest.TEST))
{
// ,
// System.out.println(" :"+test.getName());
//
// System.out.println("BeanTest name ");
}
// age
// if(evt.getPropertyName().equals("age"))
// {
// System.out.println("BeanTest age ");
// }
//
// System.out.println(evt.getPropertyName().equals(test.getName()));
System.out.println(" :"+evt.getPropertyName()+" :"+evt.getNewValue()+" "+" :"+evt.getOldValue());
// Bean
}
/**
* main
*/
// public static void main(String args[])
// {
////// bean
// BeanTest test = new BeanTest();
////// BeanTestListener
// BeanTestListener lis = new BeanTestListener();
////// bean ,
// test.addPropertyChangeListener(lis);
////// set firePropertyChangeListener()
// test.setName("2");
//// test.setName("600000.SS,25.30,25.13,25.39,24.79,68261672");
////// test.setName("test3");
////// age
////// test.setAge("1");
////// bean , ,
// test.removePropertyChangeListener(lis);
////
////// test.setName("test9");
////// test name
// System.out.println(" name :"+test.getName());
////// test age
////// System.out.println(" age :"+test.getAge());
////
// }
// public String getCto() {
// return cto;
// }
// public void setCto(String cto) {
// this.cto = cto;
// }
}//end class