加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java尝试在通知中变异

发布时间:2020-12-15 05:08:10 所属栏目:Java 来源:网络整理
导读:我有两个摆动ui表格和一个他们都看的模块. 每个ui都会为属性的更改添加一个监听器 并在发生更改时更新自己的文本字段. basiccaly – 他们都应该更新模块并从中更新. 有没有一种简单的方法可以在没有绑定框架的情况下完成它 我是这样做的(但我不断尝试在通知
我有两个摆动ui表格和一个他们都看的模块.
每个ui都会为属性的更改添加一个监听器
并在发生更改时更新自己的文本字段.

basiccaly – 他们都应该更新模块并从中更新.
有没有一种简单的方法可以在没有绑定框架的情况下完成它

我是这样做的(但我不断尝试在通知中变异) –

关于我的textField的更新

myTextField.getDocument().addDocumentListener(new TFDocumentListener() {
            protected void userChangedTF() {
                Float value = myTextField.getValue();
                if (value != null) {
                    myObj.setMyAttribute(value);
                }
            }
        });

仍然在ui – 注册变化

myObj.addMyAttributeChangedListener(new ValueChangeListener<Float>() {
            @Override public void valueChanged(Float value) {
                if (!myTextField.isFocusOwner()) {
                    myTextField.setValueIn(value);
                }
            }
        });

在模块中 – 当setMyAttribute发生时 – 它调用此函数

private void notifyIntervalChanged(float newValue) {
    for (ValueChangeListener valueChangeListener : intervalChangedListenersList) {
        valueChangeListener.valueChanged(newValue);
    }
}

我宣布了

public interface ValueChangeListener<T> {
     void valueChanged(T Value)
}

解决方法

如果需要在侦听器中更改相同JTextComponent的内容,请在SwingUtilities.invokeLater()中更改(例如setText())

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读