【发布时间】:2011-12-14 04:21:27
【问题描述】:
我有一个游戏,我试图拦截关闭事件并将用户返回到主菜单。我已经使用DO_NOTHING_ON_CLOSE 解决了一半问题,但问题是我无法将常规功能返回到菜单屏幕。
您可能知道,问题在于,如果DO_NOTHING... 是操作,windowClosing 方法显然是最后一个触发的侦听器。
所以,我的问题是,我怎样才能将EXIT_ON_CLOSE 返回到窗口,之后 NOTHING 已经完成?在此期间,我想在没有任何用户输入的情况下做到这一点。我可以切换到另一个 JFrame 并从那里处理它,但必须有更好的方法来做到这一点。
代码示例:
WindowAdapter waReturnToMenu = new WindowAdapter() {
@Override
public void windowClosing(final WindowEvent e) {
view.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
changeMenuState(0);
}
};
然后,在改变菜单状态:
public void changeMenuState(int i0) {
//...screen returns to menu, then
view.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
【问题讨论】:
标签: java swing window listener