首页 > Java > java教程 > 如何正确使用 SwingPropertyChangeSupport 进行动态 JTextArea 更新?

如何正确使用 SwingPropertyChangeSupport 进行动态 JTextArea 更新?

Linda Hamilton
发布: 2024-11-08 22:01:02
原创
428 人浏览过

How to Correctly Use SwingPropertyChangeSupport for Dynamic JTextArea Updates?

SwingPropertyChangeSupport for Dynamic JTextArea Updates

问题描述:

目标是动态更新JTextArea 的内容基于输入对话框中所做的更改。输入并确认后,数组会正确更新,但 GUI 不会反映修改。

代码概述:

提供的代码利用 SwingPropertyChangeSupport 来促进财产变更事件。使用 arrayForUpdate.instructionsIn(newValue, a) 更新数组,其中 newValue 是修改后的输入,a 是数组索引。

问题排查:

之后检查代码,问题似乎出在 ArrayForUpdating 类中的 setBoundProperty 方法中。

<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 方法的问题是使用不正确的参数调用 firePropertyChange 方法。受影响的代码标记如下:

<code class="java">    spcSupport.firePropertyChange(BOUND_PROPERTY, oldValue, newValue);</code>
登录后复制

在此特定情况下,firePropertyChange 的正确用法为:

<code class="java">    spcSupport.firePropertyChange(BOUND_PROPERTY, boundProperty, newValue);</code>
登录后复制

应用更正后,以下代码准确反映了修改片段:

<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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板