首頁 > Java > java教程 > 主體

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

Linda Hamilton
發布: 2024-11-06 09:06:02
原創
306 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!