2009-12-10 7 views

답변

3

bean에서 PropertyChangeListener s의 등록을 허용하십시오. 이는 java bean에 대한 변경 통지에 대해 지정된 관찰자 클래스입니다. PropertyChangeListener를 지원

예 콩 :이 이벤트를 파견, 또한 어떻게 마녀의 속성이 변경되었습니다 청취자에게보고 할뿐만 아니라 방법을 알려줍니다 때문에

public class TestBean { 

    private transient final List<PropertyChangeListener> listeners = new ArrayList<PropertyChangeListener>(); 

    private String name; 

    public void addPropertyChangeListener (PropertyChangeListener listener) { 
     listeners.add(listener); 
    } 

    public void removePropertyChangeListener (PropertyChangeListener listener) { 
     listeners.remove(listener); 
    } 

    private void firePropertyChange (String property, Object oldValue, Object newValue) { 

     if (oldValue == newValue || oldValue != null && oldValue.equals(newValue)) { 
      return; 
     } 

     PropertyChangeEvent evt = new PropertyChangeEvent(this, property, oldValue, newValue); 
     for (PropertyChangeListener listener : new ArrayList<PropertyChangeListener>(listeners)) { 
      listener.propertyChange(evt); 
     } 
    } 

    public String getName() { 
     return name; 
    } 

    public void setName (String name) { 

     firePropertyChange("name", this.name, this.name = name); 
    } 
} 
+0

나는이 대답을 선호합니다. – Claudio