繁体   English   中英

使用循环时java.lang.reflect.InvocationTargetException

[英]java.lang.reflect.InvocationTargetException when using loops

每当我使用循环时,都会出现错误java.lang.reflect.InvocationTargetException ,如果我只是创建一个矩形并将其分配给数组,它会起作用,但是如果我尝试将其分配给循环,则会弹出此错误。 我试图对其进行搜索,但是大多数答案都围绕着FXML文件,但是我没有。 需要吗? 如果我添加一个错误,错误会消失吗?

public class ChessBoard extends Application {

    public static void main(String[] args) {
        Application.launch(args);
    }

    @Override
    public void start(Stage primaryStage) throws Exception {
        ChessBoard(primaryStage);
    }

    public void ChessBoard(Stage primaryStage) {
        primaryStage.setTitle("");
        Group root = new Group();
        Scene scene = new Scene(root, 520, 520, Color.WHITE);

        Rectangle [][]tiles = new Rectangle[4][4];

        for(int i = 0; i < tiles.length; i++) {
            for(int j = 0; j < tiles[i].length; i++) {
                tiles[i][j] = new Rectangle();
            }
        primaryStage.setScene(scene);
        primaryStage.show();
    }
}

你的错误很小

只需更改此行

for(int j = 0; j < tiles[i].length; i++) {

到这个

for(int j = 0; j < tiles[i].length; j++) {

问题出在内部循环中,您在其中增加了计数器变量(i)而不是内部循环计数器变量(j) ,这会导致整数(i)超出数组的长度,从而导致java.lang.ArrayIndexOutOfBoundsException:4

希望这行得通

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM