我有一个附加了changeHandler的列表框。
在此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)ChangeHandler? (以进行验证)

最佳答案

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

10-07 22:13