在GWT中为HorizontalPanel添加点击处理程序

12

怎样给HorizontalPanel添加点击事件处理器?

在较新版本的GWT中,可以使用addDomHandler()实现,但我需要回退到不支持该方法的GWT 2.0.4。我曾按以下方式实现:

horizontalPanel.getWidget(1).addDomHandler(someClickHandler,ClickEvent.getType());
//or
horizontalPanel.addDomHandler(someClickHandler, ClickEvent.getType());
1个回答

34

使用FocusPanels而不是挂钩原生事件。为了捕捉整个面板的点击:

FocusPanel wrapper = new FocusPanel();
HorizontalPanel panel = new HorizontalPanel();
wrapper.add(panel);
wrapper.addClickHandler(new ClickHandler() {
  @Override
  public void onClick(ClickEvent event) {
    // Handle the click
  }
});

// Add wrapper to the parent widget that previously held panel.

或者捕获HorizontalPanel单元格内的点击:

IsWidget child; // Any widget
HorizontalPanel panel = new HorizontalPanel();
FocusPanel clickBox = new FocusPanel();

clickBox.add(child);
panel.add(clickBox);

clickBox.addClickHandler(...);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接