Maison > Java > javaDidacticiel > le corps du texte

Comment mettre à jour dynamiquement JTextArea à l'aide de SwingPropertyChangeSupport ?

Susan Sarandon
Libérer: 2024-11-06 03:04:02
original
819 Les gens l'ont consulté

How to Dynamically Update JTextArea Using SwingPropertyChangeSupport?

Utilisation de SwingPropertyChangeSupport pour mettre à jour dynamiquement JTextArea

Dans votre extrait de code, vous êtes confronté à un problème où le JTextArea représentant le tableau ne le fait pas mise à jour après que des modifications ont été apportées à l'aide de la boîte de dialogue de saisie. Cela se produit car vous n'avez pas correctement notifié SwingPropertyChangeSupport que la propriété a changé.

Pour résoudre ce problème, modifions la classe ArrayForUpdating :

<code class="java">public class ArrayForUpdating {
    // Existing code...

    public void setArrayData(int a, int memData) {
        // Existing code...

        // Fire the property change event
        setArrayyDisplayString();
        firePropertyChange(BOUND_PROPERTY, oldValue, newValue);
    }
}</code>
Copier après la connexion

Dans la méthode setArrayData, après avoir mis à jour le array et générant la nouvelle chaîne d'affichage, nous déclenchons désormais explicitement un événement de changement de propriété à l'aide de firePropertyChange. Ceci informe tous les auditeurs enregistrés que BOUND_PROPERTY a été modifié.

En mettant à jour la propriété de cette manière, la classe GuiForUpdate sera informée du changement et mettra à jour le JTextArea en conséquence.

Voici le classe GuiForUpdate mise à jour :

<code class="java">public class GuiForUpdate extends JFrame implements ActionListener {

    // Existing code...

    /**
     * Adds a display area for array
     */
    public void layoutDisplay() {
        // Existing code...

        arrayForUpdate.addPropertyChangeListener(new PropertyChangeListener() {

            @Override
            public void propertyChange(PropertyChangeEvent pcEvt) {
                if (pcEvt.getPropertyName().equals(
                        ArrayForUpdating.BOUND_PROPERTY)) {
                    mList = (pcEvt.getNewValue().toString());
                    displayOutput.setText(mList);
                }
            }
        });
    }
}</code>
Copier après la connexion

Dans la méthode layoutDisplay, nous avons mis à jour l'écouteur de changement de propriété pour mettre à jour la zone de texte displayOutput lorsque BOUND_PROPERTY change.

En incorporant ces modifications, le JTextArea reflétera désormais dynamiquement toutes les modifications apportées au tableau via la boîte de dialogue de saisie.

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!