java.beans.PropertyChangeListener

9254 ワード

 1 import java.beans.PropertyChangeEvent;

 2 import java.beans.PropertyChangeListener;

 3 import java.beans.PropertyChangeSupport;

 4 

 5 public class DemoBeans {  

 6   

 7     private String demoName;  

 8     private String Version;    

 9     PropertyChangeSupport listeners = new PropertyChangeSupport(this);  

10   

11     public DemoBeans() {  

12         demoName = "initValue";  

13         Version="v1000";

14     }  

15   

16   

17     public String getDemoName() {  

18         return demoName;  

19     }  

20       

21   

22     public void setDemoName(String demoName) {  

23         String oldValue = this.demoName;  

24         this.demoName = demoName;  

25         //   

26         firePropertyChange("demoName", oldValue, demoName);  

27           

28     }  

29       

30     public void setDemoVersion(String demoVersion) {  

31         String oldVersion = this.Version;  

32         this.Version = demoVersion;  

33         //   

34         firePropertyChange("demoVersion", oldVersion, demoVersion);  

35           

36     }  

37     public void addPropertyChangeListener(PropertyChangeListener listener) {  

38         listeners.addPropertyChangeListener(listener);  

39     }  

40       

41     public void removePropertyChangeListener(PropertyChangeListener listener){  

42         listeners.addPropertyChangeListener(listener);  

43     }  

44       

45   

46     /** 

47      *   

48      */  

49     protected void firePropertyChange(String prop, Object oldValue, Object newValue) {  

50         listeners.firePropertyChange(prop, oldValue, newValue);  

51     }  

52     public static void main(String[] args) {  

53         DemoBeans beans = new DemoBeans();  

54         

55         beans.addPropertyChangeListener(

56                 new PropertyChangeListener(){  

57             public void propertyChange(PropertyChangeEvent evt) {  

58                  if(evt.getPropertyName().equals("demoVersion")){

59                      System.out.println("version_OldValue:"+evt.getOldValue());  

60                      System.out.println("version_NewValue:"+evt.getNewValue());  

61                      System.out.println("version_tPropertyName:"+evt.getPropertyName());

62                  }

63                  else

64                  {

65                      System.out.println("name_OldValue:"+evt.getOldValue());  

66                      System.out.println("name_NewValue:"+evt.getNewValue());  

67                      System.out.println("name_tPropertyName:"+evt.getPropertyName());

68                  }

69                   

70             }});  

71 

72         

73         beans.setDemoName("test");  

74         beans.setDemoVersion("v2000");

75       

76     }   

77 }