JavaFXGridPane动态添加元素

JavaFXGridPane动态添加元素,java,javafx,Java,Javafx,JavaFX新手在这里,我正在尝试动态创建GridPane,到目前为止,我能够通过指定以下内容来创建它: GridPane gridPaneMain = new GridPane(); gridPaneMain.add(button1, 0, 0, 1, 1); gridPaneMain.add(button2, 1, 0, 1, 1); gridPaneMain.add(button3, 2, 0, 1, 1);

JavaFX新手在这里,我正在尝试动态创建GridPane,到目前为止,我能够通过指定以下内容来创建它:

GridPane gridPaneMain = new GridPane();

           gridPaneMain.add(button1, 0, 0, 1, 1);
           gridPaneMain.add(button2, 1, 0, 1, 1);
           gridPaneMain.add(button3, 2, 0, 1, 1);
           gridPaneMain.add(button4, 3, 0, 1, 1);
           gridPaneMain.add(button5, 4, 0, 1, 1);
           gridPaneMain.add(button6, 5, 0, 1, 1);
           gridPaneMain.add(button7, 6, 0, 1, 1);
           Scene scene = new Scene(gridPaneMain, 800, 800);

           ImageView imv1 = new ImageView();
           ImageView imv2 = new ImageView();
           ImageView imv3 = new ImageView();
           ImageView imv4 = new ImageView();
           ImageView imv5 = new ImageView();
           ImageView imv6 = new ImageView();
           ImageView imv7 = new ImageView();

           Image image1 = new Image(BoardGameMain.class.getResourceAsStream("viewcontrollers/blank.png"));
           imv1.setImage(image1);
           imv2.setImage(image1);
           imv3.setImage(image1);
           imv4.setImage(image1);
           imv5.setImage(image1);
           imv6.setImage(image1);
           imv7.setImage(image1);

           final HBox pictureRegion1 = new HBox();
           final HBox pictureRegion2 = new HBox();
           final HBox pictureRegion3 = new HBox();
           final HBox pictureRegion4 = new HBox();
           final HBox pictureRegion5 = new HBox();
           final HBox pictureRegion6 = new HBox();
           final HBox pictureRegion7 = new HBox();

           pictureRegion1.getChildren().add(imv1);
           pictureRegion2.getChildren().add(imv2);
           pictureRegion3.getChildren().add(imv3);
           pictureRegion4.getChildren().add(imv4);
           pictureRegion5.getChildren().add(imv5);
           pictureRegion6.getChildren().add(imv6);
           pictureRegion7.getChildren().add(imv7);

           gridPaneMain.add(pictureRegion1, 0, 1);
           gridPaneMain.add(pictureRegion2, 1, 1);
           gridPaneMain.add(pictureRegion3, 2, 1);
           gridPaneMain.add(pictureRegion4, 3, 1);
           gridPaneMain.add(pictureRegion5, 4, 1);
           gridPaneMain.add(pictureRegion6, 5, 1);
           gridPaneMain.add(pictureRegion7, 6, 1);
有没有建议如何在不指定每个元素的情况下动态创建它

谢谢使用for循环

GridPane gridPaneMain = new GridPane();
Image image = new Image(
            BoardGameMain.class.getResourceAsStream("viewcontrollers/blank.png"));
for (int x = 0; x <= 6; ++x) {
    Button button = ...;
    gridPaneMain.add(button, x, 0, 1, 1);
    ImageView imv = new ImageView();
    imv.setImage(image);
    final HBox pictureRegion = new HBox();
    pictureRegion.getChildren().add(imv);
    gridPaneMain.add(pictureRegion, x, 1);
}
Scene scene = new Scene(gridPaneMain, 800, 800);
GridPane gridPaneMain=new GridPane();
图像=新图像(
BoardGameMain.class.getResourceAsStream(“viewcontrollers/blank.png”);

对于(int x=0;x Urgh…每个
ImageView
加载同一个图像一次,尽管你知道它与所有图像都是一样的…我只是复制粘贴了给定的代码并删除了多余的元素,以便让用户看起来最熟悉。我同意可以对其进行改进,但这里重要的是了解如何“动态添加元素”。