首頁  >  文章  >  Java  >  如何實作SwingPropertyChangeSupport進行屬性變化觀察?

如何實作SwingPropertyChangeSupport進行屬性變化觀察?

Linda Hamilton
Linda Hamilton原創
2024-11-06 09:06:02377瀏覽

How to Implement SwingPropertyChangeSupport for Property Change Observation?

SwingPropertyChangeSupport 實作

要實作SwingPropertyChangeSupport 並觀察應用程式中的屬性變化,您可以參考以下範例:

🎜>

<code class="java">import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import javax.swing.event.SwingPropertyChangeSupport;

public class MyObservableClass {

    private SwingPropertyChangeSupport propertyChangeSupport = new SwingPropertyChangeSupport(this);
    private String name; // A property we want to observe

    public void setName(String newName) {
        String oldValue = this.name;
        this.name = newName;
        propertyChangeSupport.firePropertyChange("name", oldValue, newName);
    }

    public String getName() {
        return name;
    }

    public void addPropertyChangeListener(PropertyChangeListener listener) {
        propertyChangeSupport.addPropertyChangeListener(listener);
    }

    public void removePropertyChangeListener(PropertyChangeListener listener) {
        propertyChangeSupport.removePropertyChangeListener(listener);
    }
}

// Example Usage
MyObservableClass observableClass = new MyObservableClass();
PropertyChangeListener listener = new PropertyChangeListener() {
    @Override
    public void propertyChange(PropertyChangeEvent evt) {
        if (evt.getPropertyName().equals("name")) {
            System.out.println("Name changed to: " + evt.getNewValue());
        }
    }
};
observableClass.addPropertyChangeListener(listener);
observableClass.setName("New Name"); // This will trigger the listener</code>
在這個例子中,我們有一個類別(MyObservableClass),它有一個我們想要觀察的屬性(名稱)。我們使用 SwingPropertyChangeSupport 來通知偵聽器有關 name 屬性的變更。當呼叫 setName() 方法時,會觸發 firePropertyChange() 方法,該方法會通知已註冊的監聽器有關屬性變更的資訊。

在使用部分,我們在 observable 類別中新增一個 PropertyChangeListener 並監聽更改到名稱屬性。當呼叫 setName() 方法並且屬性值發生變化時,監聽器會收到通知並呼叫 propertyChange() 方法,我們可以在其中執行自訂操作以回應屬性變更。

以上是如何實作SwingPropertyChangeSupport進行屬性變化觀察?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn