Java 再次运行程序
我目前正在开发java版本的扫雷舰。当用户点击地雷或赢得游戏时,我想实现一个“是,否”选项面板,它将作为“您想再玩一次吗”之类的功能。实现no很简单,但是我在实现yes选项时遇到了一个问题,在这里程序再次运行,但在我的例子中,它只是运行程序的一个新实例,而不关闭旧实例。建议?谢谢 以下是用户找到所有地雷并获胜的代码:Java 再次运行程序,java,panel,option,Java,Panel,Option,我目前正在开发java版本的扫雷舰。当用户点击地雷或赢得游戏时,我想实现一个“是,否”选项面板,它将作为“您想再玩一次吗”之类的功能。实现no很简单,但是我在实现yes选项时遇到了一个问题,在这里程序再次运行,但在我的例子中,它只是运行程序的一个新实例,而不关闭旧实例。建议?谢谢 以下是用户找到所有地雷并获胜的代码: if (check == nomines) { endtime = System.nanoTime();
if (check == nomines)
{
endtime = System.nanoTime();
Component temporaryLostComponent = null;
JOptionPane.showMessageDialog(temporaryLostComponent, "Congratulations, you won! It took you " + (int)((endtime-starttime)/1000000000) + " seconds!");
int p = JOptionPane.showConfirmDialog(this, "Play again?","Minefield",JOptionPane.YES_NO_OPTION);
if (p == 1)
{
System.exit(0);
}
else
{
new Minefield();
}
}
}
使用边做边做循环,可以简化您的工作
do{
// your all operations...
// at last prompt yes or no ?
} while(choice.equalsIgnoreCase("yes"));
为什么不重新设置游戏场并随机放置地雷?您还需要处理当前正在运行的实例。我不确定Minefield是如何实现的,因为您还没有展示,但是如果它是JFrame,您可以使用.dispose()运行您在开始时所做的任何初始化一切的构造函数/方法。好主意。如果所有的初始化都是在
Minefield()
构造函数中完成的,那么将其全部取出,放入一个方法中,然后可以调用该方法