13

我正在 GWT 中创建一个自定义小部件,扩展 Composite 并实现 ClickHandler。我已经实现了onClick方法,但是clickEvent不起作用。为了使 clickEvent 起作用,我应该在类中另外实现什么方法?可能是HandlerRegistration?如何?

4

2 回答 2

20

如果您希望您的小部件表现得像可点击的 GWT 小部件,您应该使用com.google.gwt.event.dom.client.HasClickHandlers接口。

public class MyWidget extends Widget
implements HasClickHandlers
{
    public HandlerRegistration addClickHandler(
        ClickHandler handler)
    {
        return addDomHandler(handler, ClickEvent.getType());
    }
}
于 2012-04-11T03:41:19.570 回答
4

尝试

this.addClickHandler( myClckHandler ) ;

或者如果不可用

this.addDomHandler( myClckHandler , ClickEvent.getType()) ;

这应该有效

编辑==> 这应该有效:

public class Foo extends Composite {

private ClickHandler myClkHandler = new ClickHandler() {
    @Override
    public void onClick(ClickEvent event) {
        Window.alert("Overnuts is the best !") ;
    }
};

public Foo() {
    initWidget(this) ;
    this.addDomHandler( myClkHandler, ClickEvent.getType()) ;
   }
}
于 2012-04-10T13:52:45.207 回答