Java 创建对象并将其添加到组

Java 创建对象并将其添加到组,java,javafx,fxml,rectangles,Java,Javafx,Fxml,Rectangles,导言 我想创建一些矩形,但我总是看到一个NullPointerExection,或者我不能给出我想要的参数。 我无法生成矩形宽度、高度、x、y、paint、paint Stroke,所以我决定使用RectangleBuilder对象 我是这样做的 @FXML public void group() { // RB.applyTo(r); for (double i = 0; i < 5; i++) { pane.getChildren().add(n

导言

我想创建一些矩形,但我总是看到一个NullPointerExection,或者我不能给出我想要的参数。 我无法生成矩形宽度、高度、x、y、paint、paint Stroke,所以我决定使用RectangleBuilder对象

我是这样做的

    @FXML
public void group() {
   // RB.applyTo(r);
    for (double i = 0; i < 5; i++) {

        pane.getChildren().add(new Group(g));
        r.setStroke(Color.BLACK);
        r.setY(i * 25 + 80);
        r.setX(100.0);

        r.setStroke(Color.BLACK);
        r.getParent();
        RB.y(r.getY());
        RB.x(r.getX());
        RB.height(r.getHeight());
        RB.width(r.getWidth());
        RB.stroke(r.getStroke());
        RB.fill(r.getFill());
        g.getChildren().add(RB.build());
    }

}
我不知道这是否如此重要

顺便说一下,第45行是:

 RB.y(r.getY());

不要使用RectangleBuilder,它已弃用并将被删除

你真正的问题是什么?我是说,我在你的代码中看到了很多错误。这是一个关于如何在JavaFX中创建矩形并将其添加到组的示例:

public class RectangleDemo extends Application {

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

    @Override
    public void start(Stage primaryStage) {

        Pane pane = new Pane();

        Group group = new Group();

        for( int i = 0; i < 5; i++) {

            Rectangle rectangle = new Rectangle( 100.0, i*25.0 + 80.0, 20.0, 20.0);
            rectangle.setStroke(Color.BLACK);
            rectangle.setFill(Color.LIGHTGRAY);

            group.getChildren().add( rectangle);

        }

        pane.getChildren().add(group);

        primaryStage.setScene(new Scene( pane, 640, 480));
        primaryStage.show();
    }

}

无论谁想添加答案,请尝试说明为什么要进行此更改,因为我想从该答案中学到一些东西,不仅知道如何解决代码。可能重复有关编辑的感谢信息。所以当我试着用这种方法时,它给了我组中重复的儿童错误。在窗格中,当我尝试进行第二次分组时,最后一条评论是关于答案,他建议不要使用矩形生成器,只是想让你们知道,谢谢你们的帮助。我从未想过我可能需要在循环中添加矩形。
public class RectangleDemo extends Application {

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

    @Override
    public void start(Stage primaryStage) {

        Pane pane = new Pane();

        Group group = new Group();

        for( int i = 0; i < 5; i++) {

            Rectangle rectangle = new Rectangle( 100.0, i*25.0 + 80.0, 20.0, 20.0);
            rectangle.setStroke(Color.BLACK);
            rectangle.setFill(Color.LIGHTGRAY);

            group.getChildren().add( rectangle);

        }

        pane.getChildren().add(group);

        primaryStage.setScene(new Scene( pane, 640, 480));
        primaryStage.show();
    }

}