Rumah > Java > javaTutorial > teks badan

Bagaimana Menggunakan SwingPropertyChangeSupport dengan Betul untuk Kemas Kini JTextArea Dinamik?

Linda Hamilton
Lepaskan: 2024-11-08 22:01:02
asal
406 orang telah melayarinya

How to Correctly Use SwingPropertyChangeSupport for Dynamic JTextArea Updates?

SwingPropertyChangeSupport for Dynamic JTextArea Updates

Penerangan Isu:

Matlamatnya adalah untuk mengemas kini secara dinamik kandungan JTextArea berdasarkan perubahan yang dibuat dalam input dialog. Apabila input dimasukkan dan disahkan, tatasusunan dikemas kini dengan betul, tetapi GUI tidak menggambarkan pengubahsuaian.

Gambaran Keseluruhan Kod:

Kod yang disediakan menggunakan SwingPropertyChangeSupport to memudahkan acara pertukaran harta benda. Tatasusunan dikemas kini menggunakan arrayForUpdate.instructionsIn(newValue, a), dengan newValue ialah input yang diubah suai dan a ialah indeks tatasusunan.

Menyelesaikan Masalah:

Selepas memeriksa kod, isu itu nampaknya terletak pada kaedah setBoundProperty dalam ArrayForUpdating class.

<code class="java">public void setBoundProperty(String boundProperty) {
    String oldValue = this.boundProperty;
    System.out.println("old = " + oldValue);
    String newValue = boundProperty;
    System.out.println("new = " + newValue);
    this.boundProperty = newValue;
    spcSupport.firePropertyChange(BOUND_PROPERTY, oldValue, newValue);
}</code>
Salin selepas log masuk
Salin selepas log masuk

Isu dengan kaedah setBoundProperty ialah kaedah firePropertyChange digunakan dengan argumen yang salah. Kod yang terjejas ditandakan seperti berikut:

<code class="java">    spcSupport.firePropertyChange(BOUND_PROPERTY, oldValue, newValue);</code>
Salin selepas log masuk

Dalam kes khusus ini, penggunaan firePropertyChange yang betul ialah:

<code class="java">    spcSupport.firePropertyChange(BOUND_PROPERTY, boundProperty, newValue);</code>
Salin selepas log masuk

Dengan pembetulan yang digunakan, kod berikut menggambarkan dengan tepat diubahsuai coretan:

<code class="java">public void setBoundProperty(String boundProperty) {
    String oldValue = this.boundProperty;
    System.out.println("old = " + oldValue);
    String newValue = boundProperty;
    System.out.println("new = " + newValue);
    this.boundProperty = newValue;
    spcSupport.firePropertyChange(BOUND_PROPERTY, oldValue, newValue);
}</code>
Salin selepas log masuk
Salin selepas log masuk

Ringkasan:

Dengan membuat pelarasan ini kepada kaedah setBoundProperty, proses pengikatan antara tatasusunan dan JTextArea diwujudkan dengan betul. Akibatnya, GUI kini akan berjaya mencerminkan sebarang perubahan yang dibuat melalui dialog input.

Atas ialah kandungan terperinci Bagaimana Menggunakan SwingPropertyChangeSupport dengan Betul untuk Kemas Kini JTextArea Dinamik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan