JavaFX rectangle数组没有';nt工作
我在一个问题上工作了大约两个小时,但我仍然无法解决它。 我的任务是编程49个矩形正方形。 所以我试着用一个数组来简化它,但它不想工作:'( 如果不使用数组,它就可以工作 谢谢你的帮助 源代码: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
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);