也许这是一个me脚的问题,但是奇怪的是,在谷歌搜索30分钟后,我找不到答案。

com.google.gwt.user.client.ui.DeckPanel可以触发哪些事件? JavaDoc says它实现了HasHandlers,但被声明为void fireEvent(GwtEvent<?> event)

我怎么知道它期望什么类型,以便可以通过DeckPanel.addHandler(H handler, GwtEvent.Type<H> type)订阅事件来捕获事件?

具体来说,我想在调用DeckPanel.showWidget()时捕获事件。

谢谢!

最佳答案

DeckPanel本身不会触发任何事件。 Widget类型实现addHandler,主要用于通用DOM事件支持-调用DeckPanel#showWidget()时不会触发任何内置事件。但是,您可以实现自己的:

public class MyDeckPanel extends DeckPanel {
  public HandlerRegistration addShowWidgetHandler(
      ShowWidgetEventHandler handler) {
    return addHandler(handler, ShowWidgetEvent.getType());
  }

  @Override
  public void showWidget(int index) {
    super.showWidget(index);
    fireEvent(new ShowWidgetEvent(index));
  }
}

10-08 07:19