需要有两个处理程序,一个
Window.ClosingHandler和一个
CloseHandler。见下文。这将确保,如果在对话框中单击“取消”,
CloseHandler则不会触发。但是,如果单击“确定”,将
CloseHandler执行并将运行必要的代码。这可以用于释放数据库锁,整洁地关闭打开的会话等。
Window.addWindowClosingHandler(new Window.ClosingHandler() { @Override public void onWindowClosing(ClosingEvent event) { event.setMessage("You sure?"); }});Window.addCloseHandler(new CloseHandler<Window>() { @Override public void onClose(CloseEvent<Window> event) { //Execute pre when window closes! }});


