【发布时间】:2013-12-21 04:21:44
【问题描述】:
我创建了一个 java 游戏并实现了 GameOver 方法。这是我的游戏结束方法的代码:
public void gameOver() throws IOException {
String message = "Game, Want to try Again?";
String title = "Game Over";
int reply = JOptionPane.showConfirmDialog(frame, message, title, JOptionPane.YES_NO_OPTION);
if (reply == JOptionPane.YES_OPTION){
new Game();
} else {
this.getSoundEffect().stopAllMusic();
new Main().setVisible(true);
}
}
我遇到的一个问题是关闭原始框架。例如如果我单击“是”,游戏框架将打开,但是,它已经打开,所以我将有两个游戏实例在运行。
只是让你们知道,我尝试了以下选项:
frame.dispose();
WindowEvent wev = new WindowEvent(this, WindowEvent.WINDOW_CLOSING);
Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(wev);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
我也在考虑做一个 actionperformed 事件,但是,由于 JOptionPane 是一个 int,我无法做到。
【问题讨论】:
-
您是否保留了对已打开的
Game对象的引用? -
@Aubin,这将关闭整个系统,因此不允许我打开另一个 Java 类。
-
你应该有..这将帮助你检查游戏窗口是否打开..如果打开了不要做任何其他事情创建新的。
-
@VishalK 我该怎么做?