Heim > Java > javaLernprogramm > Hauptteil

Wie aktualisiere ich JTextArea dynamisch mit SwingPropertyChangeSupport?

Susan Sarandon
Freigeben: 2024-11-06 03:04:02
Original
819 Leute haben es durchsucht

How to Dynamically Update JTextArea Using SwingPropertyChangeSupport?

Verwenden von SwingPropertyChangeSupport zum dynamischen Aktualisieren von JTextArea

In Ihrem Codeausschnitt stehen Sie vor einem Problem, bei dem die JTextArea, die das Array darstellt, dies nicht tut Aktualisierung nach Änderungen über den Eingabedialog. Dies liegt daran, dass Sie SwingPropertyChangeSupport nicht korrekt darüber informiert haben, dass sich die Eigenschaft geändert hat.

Um dieses Problem zu beheben, ändern wir die ArrayForUpdating-Klasse:

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

In der setArrayData-Methode nach dem Aktualisieren der Nachdem wir das Array erstellt und die neue Anzeigezeichenfolge generiert haben, lösen wir jetzt explizit ein Eigenschaftsänderungsereignis mit firePropertyChange aus. Dadurch werden alle registrierten Listener darüber informiert, dass die BOUND_PROPERTY geändert wurde.

Durch die Aktualisierung der Eigenschaft auf diese Weise wird die GuiForUpdate-Klasse über die Änderung benachrichtigt und aktualisiert die JTextArea entsprechend.

Hier ist die aktualisierte GuiForUpdate-Klasse:

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

In der Methode „layoutDisplay“ haben wir den Eigenschaftsänderungs-Listener aktualisiert, um den displayOutput-Textbereich zu aktualisieren, wenn sich BOUND_PROPERTY ändert.

Durch die Einbindung dieser Änderungen wird die JTextArea spiegelt nun alle über den Eingabedialog am Array vorgenommenen Änderungen dynamisch wider.

Das obige ist der detaillierte Inhalt vonWie aktualisiere ich JTextArea dynamisch mit SwingPropertyChangeSupport?. 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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!