我正在GWT中创建一个自定义小部件,扩展Composite并实现ClickHandler。我已经实现了onClick方法,但是clickEvent不起作用。为了使clickEvent工作,我还应该在类中另外实现什么方法?可能是HandlerRegistration?怎么样?
答案 0 :(得分:18)
如果您希望您的窗口小部件的行为类似于可点击的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());
}
}
答案 1 :(得分: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()) ;
}
}