Gwt 处理窗口关闭事件
单击Gwt 处理窗口关闭事件,gwt,gxt,Gwt,Gxt,单击窗口的关闭按钮时,我正在尝试处理该事件: //查看代码 @凌驾 public void attachWindowListener(WindowListener listener){ addWindowListener(监听器); } //演示者代码 view.attachWindowListener(新的WindowListener(){ public void windowHide(WindowEvent we){ log(“窗口事件处理字段”); processFields(); }
窗口的关闭按钮时,我正在尝试处理该事件:
//查看代码
@凌驾
public void attachWindowListener(WindowListener listener){
addWindowListener(监听器);
}
//演示者代码
view.attachWindowListener(新的WindowListener(){
public void windowHide(WindowEvent we){
log(“窗口事件处理字段”);
processFields();
}
});
但是,windowHide函数似乎没有执行,因为我看不到我放在那里的日志
如何正确处理该事件 怎么样
Window.addCloseHandler(
new CloseHandler<Window>()
{
public void onClose( CloseEvent<Window> windowCloseEvent )
{
// Do your worst here
}
} );
Window.addCloseHandler(
新CloseHandler()
{
公共void onClose(CloseEvent windowCloseEvent)
{
//在这里尽你最大的努力
}
} );
我通常把它放在我的EntryPoint
类的onModuleLoad()
中
干杯,根据所提供的信息,我猜a.)您认为正在触发的事件没有为窗口组件触发(即使它们似乎应该触发)或b.)事件正在触发,但顺序与您预期的不同
例如,当窗口关闭且窗口对象的WindowEvent
从不触发时,可能会首先触发BrowserEvent
或其他事件。根据GXT 2.x的API文档,WindowEvent将在隐藏和停用时触发,但它没有指定在关闭时触发。GXT 3.0.x API文档在这一点上不太清楚,但我会假设相同的行为。不幸的是,Sencha没有提供关于给定组件触发哪些事件以及触发顺序的良好文档
话虽如此,通过使用一个debug类来输出它所连接的组件上的所有事件,我很幸运地解决了类似的问题。这可能有助于了解触发的事件及其执行顺序,并且您可以找到一个最佳事件,您可以将processFields()
方法附加到该事件
有关调试器类的一个很好的示例,请参阅相关文章中的回答:。它还包括如何将调试器附加到组件的示例
窗口的API文档,GXT 2.x:
窗口的API文档,GXT 3.0.x:这起作用了:
window.addListener(Events.Hide, new Listener<ComponentEvent>() {
@Override
public void handleEvent(ComponentEvent be) {
// Do stuff
}
});
window.addListener(Events.Hide,new Listener()){
@凌驾
公共无效handleEvent(组件事件be){
//做事
}
});
我相信@xybrek是在问GXT的窗口
小部件,而不是com.google.gwt.user.client.Window
@ThomasBroyer是的,我是在问Ext gwt(GXT)窗口