假定以下* .ui.xml文件:

<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
        xmlns:g='urn:import:com.google.gwt.user.client.ui'>
<g:VerticalPanel>
    <g:Label ui:field="Label1"></g:Label>
    <g:Label ui:field="Label2"></g:Label>
    <g:Label ui:field="Label3"></g:Label>
</g:VerticalPanel>




如果我现在想将ClickHandlers添加到所有三个Label中,如下所示:

@UiHandler("Label1")
void handleClick(ClickEvent event) {
    //do stuff
}
@UiHandler("Label2")
void handleClick(ClickEvent event) {
    //do stuff
}
@UiHandler("Label3")
void handleClick(ClickEvent event) {
    //do stuff
}


我收到一个错误,因为我有3个同名方法。除了创建自定义窗口小部件并将其添加到VerticalPanel之外,还有其他方法吗?

最佳答案

只是给他们起不同的名字。 ClickEvent是帮助GWT识别要处理的事件类型的重要部分,但是方法名称并不重要。

@UiHandler("Label1")
void handleClickForLabel1(ClickEvent event) {
    //do stuff
}

@UiHandler("Label2")
void handleClickForLabel2(ClickEvent event) {
    //do stuff
}

@UiHandler("Label3")
void whoaSomeoneClickedLabel3(ClickEvent event) {
    //do stuff
}

07-27 14:05