Maison > Java > javaDidacticiel > Comment câbler un JTextPane pour le mettre à jour avec la ligne sélectionnée de PaneWithList ?

Comment câbler un JTextPane pour le mettre à jour avec la ligne sélectionnée de PaneWithList ?

Patricia Arquette
Libérer: 2024-11-30 02:20:10
original
662 Les gens l'ont consulté

How to Wire a JTextPane to Update with PaneWithList's Selected Row?

Comment câbler un volet à un autre : Câblage de la sortie à paneWithList

Pour connecter la sortie de la ligne sélectionnée dans PaneWithList au JTextPane en sortie, pensez à utiliser l'observateur modèle. Ce modèle de conception implique la création d'une classe observable (telle que PaneWithList) qui informe ses observateurs (tels que la sortie) lorsqu'une propriété change.

Implémentation du modèle d'observateur

1. Ajoutez un PropertyChangeListener à PaneWithList :

class PaneWithList extends JPanel {
    ...
    private PropertyChangeSupport propertyChangeSupport = new PropertyChangeSupport(this);
    ...

    // Notify observers when the selected row changes
    protected void fireSelectedRowChanged(int oldValue, int newValue) {
        propertyChangeSupport.firePropertyChange("SELECTED_ROW", oldValue, newValue);
    }

    // Add a property change listener
    public void addPropertyChangeListener(PropertyChangeListener listener) {
        propertyChangeSupport.addPropertyChangeListener(listener);
    }
}
Copier après la connexion

2. Créer une classe d'observateur Sortie :

class Output extends JTextPane implements PropertyChangeListener {
    ...
    
    // Handle property change events from `PaneWithList`
    @Override
    public void propertyChange(PropertyChangeEvent e) {
        if (e.getPropertyName().equals("SELECTED_ROW")) {
            int row = (int) e.getNewValue();
            String selectedItem = paneWithList.getSelectedValue(); // Get the selected item from `PaneWithList`
            append(selectedItem + "\n"); // Display the selected item in the text pane
        }
    }
}
Copier après la connexion

3. Établissez la relation d'observateur :
Dans votre classe Main, ajoutez un observateur à PaneWithList et connectez-le à l'objet Output.

import java.beans.PropertyChangeListener;

public class Main {
    ...
    
    public static void main(String[] args) {
        ...
        
        paneWithList.addPropertyChangeListener(new Output()); // Connect to `Output`
        ...
    }
}
Copier après la connexion

Maintenant, lorsque la ligne sélectionnée dans PaneWithList change, Output sera sera averti et mettra à jour son texte en conséquence.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal