也许这是一个蹩脚的问题,但奇怪的是,经过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()时捕获事件。
谢谢!
答案 0 :(得分:3)
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));
}
}
答案 1 :(得分:0)
DeckPanel
扩展了ComplexPanel
,因此它只实现了HasAttachHandlers
。因此,默认情况下,您只会收到AttachEvent
因为它没有其他事件。但与使用任何HTML元素一样,您可以使用addDomHandler
和addBitlessDomHandler
使其下沉任何本机事件。