gwt listbox执行我的处理程序

时间:2013-12-05 14:02:47

标签: java gwt listbox

我有一个附有changeHandler的列表框。 在这个改变处理程序中,有一些非常重要的验证,我不想复制,以保持我的代码清洁。

 this.myListBox.addChangeHandler(this.myChangeHandler);

 private ChangeHandler myChangeHandler = new ChangeHandler() {
    @Override
    public void onChange(ChangeEvent event) {
       If (a<0)...
    }
 }

我曾经ChangeListeneronChange(Widget sender),但现在已弃用。 通过监听器,我可以很容易地执行ChangeListener:

this.myChangeListener.onChange(this.myListBox);

即使用户未触及列表框,如何执行新onChange(ChangeEvent event)的{​​{1}}? (使验证发生)

2 个答案:

答案 0 :(得分:2)

ChangeEvent无法实例化,因为它是本机事件。您可以创建一个实现ChangeHandler的类,并将onChange逻辑放在一个接受ListBox作为参数的公共方法(validate)中。然后从onChange方法调用新的validate方法。如果您想“手动”使用它,您只需调用validate。

答案 1 :(得分:0)

您可以尝试触发本机事件:

DomEvent.fireNativeEvent(Document.get().createChangeEvent(), myListBox);