GWT多事件处理

GWT多事件处理,gwt,event-handling,Gwt,Event Handling,我的UI端有3个小部件(1个列表框,2个文本框)。我想创建一个处理程序,当三个小部件中的任何一个的值发生变化时,以及在Blur for ListBox上时,它可以处理值变化事件 registerHandler(new multiWidgetHandler()); private class multiWidgetHandler{ //code for handling onValueChange for 3 widgets and also onBlur for listBox } 我不知

我的UI端有3个小部件(1个列表框,2个文本框)。我想创建一个处理程序,当三个小部件中的任何一个的值发生变化时,以及在Blur for ListBox上时,它可以处理值变化事件

registerHandler(new multiWidgetHandler());
private class multiWidgetHandler{
  //code for handling onValueChange for 3 widgets and also onBlur for listBox
}

我不知道如何干净地实现这一点。我需要帮助。希望您能提供一些示例代码。

您为什么要计划这样的行为?通常在一个事件的处理程序上。如果要将所有3个事件传递给单个处理程序,可以让3个不同的处理程序调用“全局”方法:HandleAllEvents()。如果所有事件都属于同一类型,则可以注册同一处理程序3次。

可以在同一处理程序中实现多个处理程序接口,然后多次添加该处理程序

private class MultiWidgetHandler implements ValueChangeHandler<String>, BlurHandler, ChangeHandler
{
    protected void handleIt() { Window.alert("These events are so handled right now!"); }

    public void onBlur(BlurEvent e) { handleIt(); }
    public void onValueChange(ValueChangeEvent<String> e) { handleIt(); }
    public void onChange(ChangeEvent e) { handleIt(); }
}

在一个复杂的用户界面上,在35个用户界面字段中,我有5-6个标准,这取决于这三个用户界面字段的变化。所以我认为最好有一个自定义处理程序来处理这三个小部件上的任何变化或模糊事件。你可以对这个设计进行评论
MultiWidgetHandler handler = new MultiWidgetHandler();

listBox.addChangeHandler(handler);
listBox.addBlurHandler(handler);
textArea1.addValueChangeHandler(handler);
textArea2.addValueChangeHandler(handler);