我有一个附有changeHandler的列表框。 在这个改变处理程序中,有一些非常重要的验证,我不想复制,以保持我的代码清洁。
this.myListBox.addChangeHandler(this.myChangeHandler);
private ChangeHandler myChangeHandler = new ChangeHandler() {
@Override
public void onChange(ChangeEvent event) {
If (a<0)...
}
}
我曾经ChangeListener
与onChange(Widget sender)
,但现在已弃用。
通过监听器,我可以很容易地执行ChangeListener:
this.myChangeListener.onChange(this.myListBox);
即使用户未触及列表框,如何执行新onChange(ChangeEvent event)
的{{1}}? (使验证发生)
答案 0 :(得分:2)
ChangeEvent无法实例化,因为它是本机事件。您可以创建一个实现ChangeHandler的类,并将onChange逻辑放在一个接受ListBox作为参数的公共方法(validate)中。然后从onChange方法调用新的validate方法。如果您想“手动”使用它,您只需调用validate。
答案 1 :(得分:0)
您可以尝试触发本机事件:
DomEvent.fireNativeEvent(Document.get().createChangeEvent(), myListBox);