Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaFX rectangle数组没有';nt工作_Java_Arrays_Javafx_Javafx 8_Rectangles - Fatal编程技术网

JavaFX rectangle数组没有';nt工作

JavaFX rectangle数组没有';nt工作,java,arrays,javafx,javafx-8,rectangles,Java,Arrays,Javafx,Javafx 8,Rectangles,我在一个问题上工作了大约两个小时,但我仍然无法解决它。 我的任务是编程49个矩形正方形。 所以我试着用一个数组来简化它,但它不想工作:'( 如果不使用数组,它就可以工作 谢谢你的帮助 源代码: package Game; import javafx.scene.shape.Rectangle; import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.layout.HBox

我在一个问题上工作了大约两个小时,但我仍然无法解决它。 我的任务是编程49个矩形正方形。 所以我试着用一个数组来简化它,但它不想工作:'(

如果不使用数组,它就可以工作

谢谢你的帮助

源代码:

 package Game;
 import javafx.scene.shape.Rectangle;
 import javafx.application.Application;
 import javafx.scene.Scene;
 import javafx.scene.layout.HBox;
 import javafx.scene.layout.VBox;
 import javafx.scene.paint.Color;
 import javafx.stage.Stage;
 public class Game extends Application{

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

}

@Override
public void start(Stage primaryStage) throws Exception {
    // TODO Auto-generated method stub
    VBox vb = new VBox();
    VBox vb2 = new VBox();
    HBox hb = new HBox();

    Rectangle q[] = new Rectangle[4];


    q[0].setFill(Color.RED);
    q[1].setFill(Color.BLUE);
    q[2].setFill(Color.GREEN);
    q[3].setFill(Color.YELLOW);

    vb.getChildren().addAll(q[0],q[1]);
    vb2.getChildren().addAll(q[2],q[3]);
    hb.getChildren().addAll(vb,vb2);

    Scene sz1 = new Scene(hb);
    primaryStage.setScene(sz1);
    primaryStage.show();



}
}


您将获得一个
NullPointerException
,因为您初始化了一个数组,但忘记了初始化数组中的对象!
q[0]
-
q[3]
都是
null
。您不能对
null
对象调用
setFill()
方法

改变

Rectangle q[] = new Rectangle[4];


q[0].setFill(Color.RED);
q[1].setFill(Color.BLUE);
q[2].setFill(Color.GREEN);
q[3].setFill(Color.YELLOW);
差不多

Rectangle q[] = new Rectangle[4];

// initialize the rectangles
q[0] = new Rectangle();
q[1] = new Rectangle();
q[2] = new Rectangle();
q[3] = new Rectangle();

q[0].setFill(Color.RED);
q[1].setFill(Color.BLUE);
q[2].setFill(Color.GREEN);
q[3].setFill(Color.YELLOW);
希望这有帮助

Rectangle q[] = new Rectangle[4];

// initialize the rectangles
q[0] = new Rectangle();
q[1] = new Rectangle();
q[2] = new Rectangle();
q[3] = new Rectangle();

q[0].setFill(Color.RED);
q[1].setFill(Color.BLUE);
q[2].setFill(Color.GREEN);
q[3].setFill(Color.YELLOW);