私はJavaFXを使用してシュートとはしごゲームを作成しています。Javafxシュートとはしごのプレイヤーとピースを作成する
私が現在取り組んでいるのは、ユーザーが何人の選手を選んだら、実行する方法でエラーが発生します。
私はデバッガで実行しましたが、どの行が問題なのかを知っていますが、ここからどこに行くのか分かりません。
例外がある:
例外スレッドの "JavaFXのアプリケーションスレッド" java.lang.ArrayIndexOutOfBoundsException:0
Iは、Iが4にprivate Players [] players = new Players[0];
ゼロを変更することを見出しましたできます。私は長さ0でそして、あなたはnumOfPlayersまで0からの要素を反復しているループで配列として0
public class Main extends Application {
private final int BOARD_DIM = 10;
private Players [] players = new Players[0];
private Circle [] c = new Circle[0];
public static void main(String[]args){
launch();
}
public void start(Stage pStage) throws Exception{
//ROOT PANE
BorderPane root = new BorderPane();
//MENUBAR
//BOARD CREATION
//PLAYER SELECTION/RESUME PREVIOUS GAME
//Drop down menu
HBox players = new HBox();
Label intro = new Label("Select # of players");
ChoiceBox<String> p = new ChoiceBox<>();
p.getItems().addAll("2","3","4");
p.setPadding(new Insets(6));
//Button to start new game
Button startGame = new Button("Start Game");
startGame.setOnAction(e -> getChoice(p));
startGame.setPadding(new Insets(10));
players.getChildren().addAll(intro,p,startGame);
root.setRight(players);
Scene scene = new Scene(root, 900, 650);
pStage.setTitle("Chutes and Ladders");
pStage.setScene(scene);
pStage.show();
}
private void getChoice(ChoiceBox<String> p) {
int numOfPlayers = Integer.parseInt(p.getValue());
for(int i = 0; i < numOfPlayers; i++){
players[i] = new Players("p"+(i+1),9,0, false);
c[i] = new Circle(25);
}
c[0].setFill(Color.GREEN);
c[1].setFill(Color.YELLOW);
if(numOfPlayers >= 3){
c[2].setFill(Color.RED);
}
if(numOfPlayers == 4){
c[3].setFill(Color.BLACK);
}
}
実際のエラー/例外は何ですか? – dejuknow