Gwt uiBinder打开按钮单击事件

Gwt uiBinder打开按钮单击事件,gwt,uibutton,uibinder,Gwt,Uibutton,Uibinder,我在试着用uiBinder。我遵循了 谷歌,但我不知道为什么clickevent不起作用?我想计算点击次数,并在范围内显示它,但它不起作用,我还放置了window.alert,但似乎根本没有调用事件处理程序!有人能帮我吗?这是几个小时,我正在努力,但找不到问题 多谢各位 附言。 下面是我的代码 公共类uiProductList扩展了复合{ @UiField按钮btnAdd; @UiField ImageElement imgPrd; @UiField元素lblNum; 整数计数; 专用

我在试着用uiBinder。我遵循了 谷歌,但我不知道为什么clickevent不起作用?我想计算点击次数,并在范围内显示它,但它不起作用,我还放置了window.alert,但似乎根本没有调用事件处理程序!有人能帮我吗?这是几个小时,我正在努力,但找不到问题

多谢各位

附言。 下面是我的代码




公共类uiProductList扩展了复合{
@UiField按钮btnAdd;
@UiField ImageElement imgPrd;
@UiField元素lblNum;
整数计数;
专用静态uiProductListUiBinder uiBinder=
create(uiProductListUiBinder.class);
接口uiProductListUiBinder扩展了UiBinder{
}
公共产品列表(){
initWidget(uiBinder.createAndBindUi(this));
}
@UiHandler(“btnAdd”)
无效手柄点击(点击事件e){
窗口警报(“测试”);
计数++;
lblNum.setInnerText(Integer.toString(count));
}
}

您应该正确地将小部件添加到根面板。使用

RootPanel.get().add(uiProduct)


否则处理程序不会初始化。

我遇到了完全相同的问题,结论如下:

RootPanel.getBodyElement().appendChild(uiProduct.getElement())-不工作


RootPanel.get().add(uiProduct)-工作正常

如果使用
addClickHandler()
以“常规”方式添加单击处理程序,代码是否工作?是否确实要关闭
标记?上面的代码中似乎缺少它。
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
   xmlns:g="urn:import:com.google.gwt.user.client.ui">
   <ui:style>
   </ui:style>
   <g:HTMLPanel>
    <table>
        <tr>
            <td><img ui:field='imgPrd'/></td>
            <td>
               <span ui:field='lblNum'></span>
                <g:Button ui:field='btnAdd'></g:Button>
            </td>
        </tr>
    </table>
   </g:HTMLPanel>
public class uiProductList extends Composite {

@UiField Button btnAdd;
@UiField ImageElement imgPrd;
@UiField SpanElement lblNum;

int count;
private static uiProductListUiBinder uiBinder =
GWT.create(uiProductListUiBinder.class);

interface uiProductListUiBinder extends UiBinder<Widget,
uiProductList> {
}

public uiProductList() {
   initWidget(uiBinder.createAndBindUi(this));
}


@UiHandler("btnAdd")
void handleClick(ClickEvent e) {
  Window.alert("test");
  count++;       
  lblNum.setInnerText(Integer.toString(count));
 }

}