【问题标题】:Java - ValueChangeListener that changes its own valueJava - 更改自身值的 ValueChangeListener
【发布时间】:2015-08-18 16:46:20
【问题描述】:

在这种情况下,有一个文本框用于检查值。 如果该值低于 {minimumValue},则将该值设置为 {minimumValue},该值取自 DB 中的另一个表(通过服务访问,不能硬编码到 POJO 中)。

一个监听器被放置在文本框上,但是,这个监听器不能改变它自己的文本框的值,因为它会再次访问自己和/或以某种方式与它所在的文本框分离。简而言之,侦听器似乎无法更改其自己的文本框的值。

Model 的值发生了变化,但 UI 上显示的值保持不变。

我尝试了以下方法:

private final class MyValueChangeListener implements IValueChangeListener {
    @Override
    public void handleValueChange(final ValueChangeEvent event) {
        this.detachAllListeners();
        this.handleMyValueChange();
        this.attachAllListeners();
    }
  }

但是,它仍然不起作用。有没有办法做到这一点? 最好不要访问 refreshUI() 方法,这样会不太优雅。

【问题讨论】:

  • 你在为 Eclipse 编程吗?
  • 我不是为 Eclipse 编程,但我使用的是 Eclipse IDE。我不确定这有什么关系。
  • IValueChangeListenerValueChangedEvent 是 Eclipse 核心类。
  • 您可以在侦听器之外添加一个布尔值,例如布尔值重置;如果是真的,让你的程序将值更改为所需的数字,然后将其设置回假。
  • 我明白了,你的意思是像触发器一样?然后在该布尔值上设置一个监听器。

标签: java user-interface model textbox listener


【解决方案1】:

这最终无法做到,除非修改底层模型,然后刷新整个 UI。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-30
    • 2011-06-23
    • 2014-01-19
    • 1970-01-01
    • 1970-01-01
    • 2021-05-28
    相关资源
    最近更新 更多