Heim > Java > javaLernprogramm > Hauptteil

Wie implementiert man SwingPropertyChangeSupport für die Beobachtung von Eigenschaftsänderungen?

Linda Hamilton
Freigeben: 2024-11-06 09:06:02
Original
378 Leute haben es durchsucht

How to Implement SwingPropertyChangeSupport for Property Change Observation?

SwingPropertyChangeSupport-Implementierung

Um SwingPropertyChangeSupport zu implementieren und Eigenschaftsänderungen in Ihrer Anwendung zu beobachten, können Sie sich auf das folgende Beispiel beziehen:

Beispiel:

<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>
Nach dem Login kopieren

In diesem Beispiel haben wir eine Klasse (MyObservableClass) mit einer Eigenschaft (Name), die wir beobachten möchten. Wir verwenden SwingPropertyChangeSupport, um Listener über Änderungen an der Namenseigenschaft zu benachrichtigen. Wenn die setName()-Methode aufgerufen wird, löst sie die firePropertyChange()-Methode aus, die die registrierten Listener über die Eigenschaftsänderung benachrichtigt.

Im Verwendungsabschnitt fügen wir der beobachtbaren Klasse einen PropertyChangeListener hinzu und warten auf Änderungen zur Namenseigenschaft. Wenn die Methode setName() aufgerufen wird und sich der Eigenschaftswert ändert, wird der Listener benachrichtigt und die Methode propertyChange() aufgerufen, mit der wir benutzerdefinierte Aktionen als Reaktion auf die Eigenschaftsänderung ausführen können.

Das obige ist der detaillierte Inhalt vonWie implementiert man SwingPropertyChangeSupport für die Beobachtung von Eigenschaftsänderungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage