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