【发布时间】: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。我不确定这有什么关系。
-
IValueChangeListener和ValueChangedEvent是 Eclipse 核心类。 -
您可以在侦听器之外添加一个布尔值,例如布尔值重置;如果是真的,让你的程序将值更改为所需的数字,然后将其设置回假。
-
我明白了,你的意思是像触发器一样?然后在该布尔值上设置一个监听器。
标签: java user-interface model textbox listener