Javafx为滑梯和梯子创建播放器和部件

Javafx为滑梯和梯子创建播放器和部件,java,javafx,Java,Javafx,我有一个任务,我要用JavaFX创建一个滑梯和梯子游戏 我现在坚持的是,一旦用户选择了他们想要的玩家数量,我运行的方法就会推送一个错误 我已经通过调试器运行了它,并且我知道问题出在哪一行,但是我不知道从这里可以走到哪里 例外情况是: 线程JavaFX应用程序线程中的异常 java.lang.ArrayIndexOutOfBoundsException:0 我发现如果我在私人玩家[]玩家=新玩家[0]中更改0;对于4,它是有效的。但是,如果我尝试更改私人圈子中的0[]c=新圈子[0],则会出现另一

我有一个任务,我要用JavaFX创建一个滑梯和梯子游戏

我现在坚持的是,一旦用户选择了他们想要的玩家数量,我运行的方法就会推送一个错误

我已经通过调试器运行了它,并且我知道问题出在哪一行,但是我不知道从这里可以走到哪里

例外情况是:

线程JavaFX应用程序线程中的异常 java.lang.ArrayIndexOutOfBoundsException:0

我发现如果我在私人玩家[]玩家=新玩家[0]中更改0;对于4,它是有效的。但是,如果我尝试更改私人圈子中的0[]c=新圈子[0],则会出现另一个错误


您正在将player和c初始化为长度为0的数组。在循环中,您将迭代从0到NUMOF的元素。这就是导致异常的原因

首先,只需声明数组:

private Players [] players;
private Circle [] c;
然后在您的方法中,如果以后需要更改长度,请使用所需的长度初始化数组。我建议切换到ArrayList

private void getChoice(ChoiceBox<String> p) {
    int numOfPlayers = Integer.parseInt(p.getValue());
    c = new Circle[numOfPlayers];            //add these lines
    players = new Players[numOfPlayers];     //add these lines
    for(int i = 0; i < numOfPlayers; i++){
        players[i] = new Players("p"+(i+1),9,0, false);
        c[i] = new Circle(25);
    }
    ...
}

您正在将player和c初始化为长度为0的数组。在循环中,您将迭代从0到NUMOF的元素。这就是导致异常的原因

首先,只需声明数组:

private Players [] players;
private Circle [] c;
然后在您的方法中,如果以后需要更改长度,请使用所需的长度初始化数组。我建议切换到ArrayList

private void getChoice(ChoiceBox<String> p) {
    int numOfPlayers = Integer.parseInt(p.getValue());
    c = new Circle[numOfPlayers];            //add these lines
    players = new Players[numOfPlayers];     //add these lines
    for(int i = 0; i < numOfPlayers; i++){
        players[i] = new Players("p"+(i+1),9,0, false);
        c[i] = new Circle(25);
    }
    ...
}

什么是实际错误/异常?什么是实际错误/异常?