Java 我的代码似乎编译正确,但GUI不是';t出现(是的,GUI设计正确)
我正在为一个APCS最终项目创建一个简单的地牢爬虫,它基于经典AP gridworld程序的GUI。我试图在程序运行时创建随机的岩墙。为了做到这一点,我扩展了摇滚类。当我运行runner时,代码似乎编译正确,但GUI没有出现(java图标出现在我的dock上) 如果需要,以下是gridworld代码: 我百分之百确定这个问题存在于我的RockWalls类中,因为驱动程序在不添加墙的情况下运行良好。问题可能在于我忽略了ActorWorld的.add()方法中的位置(在RockWalls构造函数中的位置是随机的) 我当前的测试驱动程序Java 我的代码似乎编译正确,但GUI不是';t出现(是的,GUI设计正确),java,user-interface,Java,User Interface,我正在为一个APCS最终项目创建一个简单的地牢爬虫,它基于经典AP gridworld程序的GUI。我试图在程序运行时创建随机的岩墙。为了做到这一点,我扩展了摇滚类。当我运行runner时,代码似乎编译正确,但GUI没有出现(java图标出现在我的dock上) 如果需要,以下是gridworld代码: 我百分之百确定这个问题存在于我的RockWalls类中,因为驱动程序在不添加墙的情况下运行良好。问题可能在于我忽略了ActorWorld的.add()方法中的位置(在RockWalls构造函数中
import info.gridworld.actor.ActorWorld;
import info.gridworld.actor.Rock;
import info.gridworld.grid.Location;
import java.util.ArrayList;
public class GameRunner
{
public static void main(String[] args)
{
ActorWorld world = new ActorWorld();
world.add(new Location(5, 5), new RockWalls(3, world.getGrid()));
world.show();
}
}
石墙班
import info.gridworld.actor.Rock;
import info.gridworld.grid.Location;
import info.gridworld.grid.Grid;
public class RockWalls extends Rock {
RockWalls(int numWalls, Grid gameGrid) {
for (int i = 0; i < numWalls; i++) {
int length = (int) (Math.random() * 5) + 1;
int startX = (int) (Math.random() * 10) + 1;
int startY = (int) (Math.random() * 10) + 1;
boolean isVertical = false;
if (Math.random() > .5) {
isVertical = true;
}
for (int j = 0; j < length && j < 10 && j >= 0; i++) {
if (isVertical == true && j < 9 && j <= 1
&& gameGrid.get(new Location(startX + j, startY)) == null
&& gameGrid.get(new Location(startX - j, startY)) == null) {
gameGrid.put(new Location(startX + j, startY), new Rock());
gameGrid.put(new Location(startX - j, startY), new Rock());
} else if (isVertical == false && j < 9 && j <= 1
&& gameGrid.get(new Location(startX, startY + j)) == null
&& gameGrid.get(new Location(startX, startY - j)) == null) {
gameGrid.put(new Location(startX, startY + j), new Rock());
gameGrid.put(new Location(startX, startY - j), new Rock());
} else {
i--;
}
}
}
}
}
import info.gridworld.actor.Rock;
导入info.gridworld.grid.Location;
导入info.gridworld.grid.grid;
公共级岩墙延伸至岩石{
岩石墙(整数墙,网格游戏网格){
for(int i=0;i.5){
isVertical=真;
}
对于(int j=0;j=0;i++){
如果在内部for循环中(isVertical==true&&j<9&&j,则增加i变量而不是j,这将导致无休止的循环,因为j永远不会改变
顺便说一句,“j<9&&j”是的,GUI设计正确”--您只能在GUI/程序正常工作的情况下说明这一点。在此之前,必须假设此假设是错误的,除非证明是错误的。