首頁  >  文章  >  Java  >  如何正確使用 SwingPropertyChangeSupport 進行動態 JTextArea 更新?

如何正確使用 SwingPropertyChangeSupport 進行動態 JTextArea 更新?

Linda Hamilton
Linda Hamilton原創
2024-11-08 22:01:02406瀏覽

How to Correctly Use SwingPropertyChangeSupport for Dynamic JTextArea Updates?

SwingPropertyChangeSupport for Dynamic JTextArea Updates

問題描述:

問題描述:

問題描述:

代碼概述:

提供的代碼利用 SwingPropertyChangeSupport 來促進財產變更事件。使用 arrayForUpdate.instructionsIn(newValue, a) 更新數組,其中 newValue 是修改的輸入,a 是數組索引。

問題排查:
<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>

之後檢查程式碼,問題似乎出在 ArrayForUpdating 類別中的 setBoundProperty 方法。
<code class="java">    spcSupport.firePropertyChange(BOUND_PROPERTY, oldValue, newValue);</code>

setBoundProperty 方法的問題是使用不正確的參數來呼叫 firePropertyChange 方法。受影響的代碼標記如下:
<code class="java">    spcSupport.firePropertyChange(BOUND_PROPERTY, boundProperty, newValue);</code>

在此特定情況下,firePropertyChange的正確用法為:
<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>

應用更正後,以下代碼準確反映了修改片段:

摘要:通過對setBoundProperty 方法進行此調整,可以正確建立陣列和JTextArea 之間的綁定過程。因此,GUI 現在將成功反映透過輸入對話方塊所做的任何更改。

以上是如何正確使用 SwingPropertyChangeSupport 進行動態 JTextArea 更新?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn