我是一名刚开始学习计算机科学的学生,我们被要求完成一个项目,该项目使随机生成的汽车对象移动到城市地图网格上随机生成的停车位。我为按钮、文本字段和文本区域开发了一个 GUI。一切都按要求进行,除了在动画结束时,当所有汽车都到达停车位时,我需要在我的 JTextArea 中显示分析。我的按钮设置正确,我将向您展示代码发生在下面的位置:
else if (e.getSource() == start) {
setAnimate(true);
if(simulator.simulationFinished()) {
createAnalytics();
}
}
所以在这里我在开始动画的按钮“开始”上实现了一个动作监听器。目前它:
- 目前它开始动画,所有汽车都按预期行驶到停车位。
- 它显示从动画开始之前派生的分析(分析包括:汽车 ID、移动次数、尝试的平均点数、平均行驶距离)
- 然后动画将结束。
- 如果我再次按下开始按钮,它将显示正确的分析。
我知道,为了让程序在程序完成时显示正确的分析,我很可能需要一个 while 循环,但是我无法想象任何不会创建无限循环并需要我手动终止的东西通过控制台程序。
while(!simulator.simulationFinished()) {
if(simulator.simulationFinished() == true)break; {
createAnalytics();
}
}
我也在现有的所有循环的数百个其他变体中尝试过这个。按照我的逻辑,我需要 while 循环,以便它继续检查模拟是否完成,以便我可以执行生成分析的方法,但如果不给 while 循环做点什么,它就会继续永远和崩溃。我很茫然,任何帮助将不胜感激。谢谢。