Maison >Java >javaDidacticiel >Comment implémenter SwingPropertyChangeSupport pour l'observation des changements de propriété ?

Comment implémenter SwingPropertyChangeSupport pour l'observation des changements de propriété ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-06 09:06:02421parcourir

How to Implement SwingPropertyChangeSupport for Property Change Observation?

Implémentation de SwingPropertyChangeSupport

Pour implémenter SwingPropertyChangeSupport et observer les changements de propriétés dans votre application, vous pouvez vous référer à l'exemple suivant :

Exemple :

<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>

Dans cet exemple, nous avons une classe (MyObservableClass) avec une propriété (nom) que nous voulons observer. Nous utilisons SwingPropertyChangeSupport pour informer les auditeurs des modifications apportées à la propriété name. Lorsque la méthode setName() est appelée, elle déclenche la méthode firePropertyChange(), qui informe les auditeurs enregistrés du changement de propriété.

Dans la section utilisation, nous ajoutons un PropertyChangeListener à la classe observable et écoutons les changements. à la propriété du nom. Lorsque la méthode setName() est appelée et que la valeur de la propriété change, l'écouteur est averti et la méthode propertyChange() est invoquée, où nous pouvons effectuer des actions personnalisées en réponse au changement de propriété.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn