如何在javaFX中像div一样动态生成VBox

时间:2017-06-02 08:05:57

标签: java javafx

我想根据结果的数量自动生成VBox。例如,如果结果的数量是3,那么我想自动生成3个VBox。 我按照以下示例编写了以下代码:https://www.javacodegeeks.com/2012/07/javafx-20-layout-panes-hbox-and-vbox.html

但它不起作用:

@FXML
private AnchorPane apne;

@FXML
private VBox vbxOuter;

@FXML
private VBox vbxInner;


@Override
public void initialize(URL location, ResourceBundle resources) {
    // TODO Auto-generated method stub
    apne = new AnchorPane();
    vbxOuter = new VBox();

    getnewer(apne, vbxOuter, vbxInner);

}


public void getnewer(AnchorPane apne, VBox vbxtrue, VBox vbxmain){



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

        vbxInner = new VBox(i+1);
        vbxOuter.getChildren().add(vbxInner);

    }

    apne.getChildren().addAll(vbxOuter);

}

apne是一个包含vbxOuter的锚点窗格。我希望vbxOuter根据结果的数量自动生成。 vbxinner将包含按钮和标签。我该怎么办?

1 个答案:

答案 0 :(得分:1)

apnevbxOuter应该已经存在,并且如果您使用FXML制作它们,则可用于您的方法。您所要做的就是在方法中填充vbxOuter

@FXML private AnchorPane apne;
@FXML private VBox vbxOuter;


@Override
public void initialize(URL location, ResourceBundle resources) {
    apne.getChildren().add(vbxOuter);

    int numberOfInnerVBoxes = 3;
    getnewer(numberOfInnerVBoxes);
}


public void getnewer(int num){
    for(int i = 0; i<num ; i++){
        vbxOuter.getChildren().add(new VBox(i+1));
    }
}