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!