變量或任何幫助,將不勝感激「屬性」必須或許使用PropertyChangeSupport對象中莫名其妙地看着,並允許其他對象向其添加PropertyChangeListener,使其成爲「」。 Swing應用程序有一個特殊版本,用於處理Swing事件線程SwingPropertyChangeSupport,並且您可能希望使用它。
編輯
你問
感謝您的答覆,我認爲會是什麼中的firePropertyChange( 「saveNeeded」,saveNeeded,saveNeeded!);正在做,但這是做什麼?這是否只是通知程序,或者我需要在某處找到句柄?這是基於預先生成的代碼,所以我不知道它是否在後臺添加了一些東西。
保存監視變量的類將需要私有SwingPropertyChangeSupport字段。你想給它一個公共addPropertyChangeListener方法,你會允許其他類聽其綁定屬性,像這樣(如果該屬性是一個String):
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import javax.swing.event.SwingPropertyChangeSupport;
public class Foo {
public static final String MY_BOUND_PROPERTY = "My Bound Property";
private SwingPropertyChangeSupport spcSupport = new SwingPropertyChangeSupport(
this);
private String myBoundProperty;
public void addPropertyChangeListener(PropertyChangeListener listener) {
spcSupport.addPropertyChangeListener(listener);
}
public void removePropertyChangeListener(PropertyChangeListener listener) {
spcSupport.removePropertyChangeListener(listener);
}
public String getMyBoundProperty() {
return myBoundProperty;
}
public void setMyBoundProperty(String myBoundProperty) {
Object oldValue = this.myBoundProperty;
Object newValue = myBoundProperty;
this.myBoundProperty = myBoundProperty;
PropertyChangeEvent pcEvent = new PropertyChangeEvent(this,
MY_BOUND_PROPERTY, oldValue, newValue);
spcSupport.firePropertyChange(pcEvent);
}
}
那麼任何想聽聽類更改只需將PropertyChangeListener添加到此類的對象中,並根據需要對其進行響應。
感謝您的回覆,我認爲這將是什麼'firePropertyChange(「saveNeeded」,!saveNeeded,saveNeeded);'在做,但是這樣做?這是否只是通知程序,或者我需要在某處找到句柄?這是基於預先生成的代碼,所以我不知道它是否在後臺添加了一些東西。感謝 – Darc
@Darc:請參閱上面的編輯 –
感謝您的幫助,我仍然不能看到生成的代碼如何工作,但我不在乎,我寧願寫代碼我自己,所以我知道它是如何工作的。感謝您的幫助 – Darc