GWT按钮EventListener未激发

GWT按钮EventListener未激发,gwt,button,Gwt,Button,我有一个html标记 我用过: ((HasClickHandlers)RootPanel.get("test").getWidget(0)).addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { Window.alert('sss'); } } 我执行了,但没有行动 更新: package com.example.client; import com.go

我有一个
html标记

我用过:

((HasClickHandlers)RootPanel.get("test").getWidget(0)).addClickHandler(new ClickHandler() {
  @Override
  public void onClick(ClickEvent event) {
    Window.alert('sss');
  }
}
我执行了,但没有行动

更新:

package com.example.client;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.event.dom.client.*;
import com.google.gwt.user.client.*;
import com.google.gwt.user.client.ui.RootPanel;

public class ExampleWebApp implements EntryPoint {
  public void onModuleLoad() { 
    ((HasClickHandlers) RootPanel.get("test").getWidget(0)).addClickHandler(new ClickHandler() { 
      @Override
      public void onClick(ClickEvent event) {
        Window.alert("i got it");
      }
    });
   }
 }
HTML:


GWT按钮小部件是一个
按钮
标记,而不是
输入
标记。这意味着在这种情况下不能使用GWT按钮小部件。要使其工作,您需要创建自己的小部件,它可以基于小部件
ButtonBase
,但需要使用
InputElement
对象而不是
ButtonElement
进行初始化

从html获取标记的下一步是添加类似于大多数小部件中存在的静态
wrap
方法的内容。以下是当
输入
是一个
按钮
标记时,在您的示例中如何使用它:

Button.wrap(RootPanel.get("test").getWidget(0).getElement()).addClickHandler(
    new ClickHandler() {
       @Override public void onClick(ClickEvent event) { 
          Window.alert('sss');
       }
    });

在您的情况下,您可以将
wrap
方法添加到自定义输入小部件中。请参见te
wrap
方法的
按钮
小部件实现,这是相同的,当然除了小部件本身的创建。

您不能只使用html按钮并尝试向其添加单击处理程序。您需要使用gwt代码创建按钮。尝试:

<div id="test"></div>

我有一个div id=“test”input type=“button”value=“OK”//div html标记。我在html标记中有一个div id=“test”input type=“button”value=“OK”。但是,仅仅因为您铸造了小部件,就没有操作,这并不意味着您“神奇地”获得了处理程序。您必须确保添加到根目录的小部件正确实现HasClickHandlers接口。如果您添加整个代码,将帮助.package com.example.client;导入com.google.gwt.core.client.EntryPoint;导入com.google.gwt.event.dom.client.*;导入com.google.gwt.user.client.*;导入com.google.gwt.user.client.ui.RootPanel;公共类ExampleWebApp实现入口点{public void onModuleLoad(){((HasClickHandlers)RootPanel.get(“test”).getWidget(0)).addClickHandler(新建ClickHandler(){@Override public void onClick(ClickEvent事件){Window.alert(“我得到它”);}}}}在提问之前,请先学会正确使用该网站-您知道有一个“编辑”按钮,使用一些标记也会有所帮助关于您的问题-您显然误解了GWT的工作方式,请访问官方文档(),深入研究它们,然后可能会回来提出合理的问题。
<div id="test"></div>
Button button = new Button("OK");
RootPanel.get("test").add(button);
button.addClickHandler(new ClickHandler() {...});