Rumah >Java >javaTutorial >Bagaimana untuk Mengemas kini JTextArea Secara Dinamik Menggunakan SwingPropertyChangeSupport?

Bagaimana untuk Mengemas kini JTextArea Secara Dinamik Menggunakan SwingPropertyChangeSupport?

Susan Sarandon
Susan Sarandonasal
2024-11-06 03:04:02888semak imbas

How to Dynamically Update JTextArea Using SwingPropertyChangeSupport?

Menggunakan SwingPropertyChangeSupport untuk Kemas Kini JTextArea Secara Dinamik

Dalam coretan kod anda, anda menghadapi masalah di mana JTextArea yang mewakili tatasusunan tidak kemas kini selepas pengubahsuaian dibuat menggunakan dialog input. Ini berlaku kerana anda tidak memberitahu SwingPropertyChangeSupport dengan betul bahawa harta itu telah berubah.

Untuk menyelesaikannya, mari ubah suai kelas 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>

Dalam kaedah setArrayData, selepas mengemas kini tatasusunan dan menjana rentetan paparan baharu, kami kini secara eksplisit melancarkan peristiwa perubahan sifat menggunakan firePropertyChange. Ini memberitahu semua pendengar berdaftar bahawa BOUND_PROPERTY telah diubah suai.

Dengan mengemas kini harta dengan cara ini, kelas GuiForUpdate akan dimaklumkan tentang perubahan itu dan akan mengemas kini JTextArea sewajarnya.

Berikut ialah kelas GuiForUpdate yang dikemas kini:

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

Dalam kaedah layoutDisplay, kami telah mengemas kini pendengar perubahan sifat untuk mengemas kini kawasan teks paparanOutput apabila BOUND_PROPERTY berubah.

Dengan memasukkan perubahan ini, JTextArea kini akan mencerminkan secara dinamik sebarang pengubahsuaian yang dibuat pada tatasusunan melalui dialog input.

Atas ialah kandungan terperinci Bagaimana untuk Mengemas kini JTextArea Secara Dinamik Menggunakan SwingPropertyChangeSupport?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn