JavaFX - 如何在锚点窗格中添加容器

cip*_*anr 3 java javafx fxml

我有一个简单的项目,其中包含带分割器的fxml.

所以fxml是这样的:

<AnchorPane id="AnchorPane" prefHeight="200" prefWidth="320" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8" fx:controller="accordionproject.FXMLDocumentController">
    <children>
        <SplitPane fx:id="splitPane" dividerPositions="0.29797979797979796" focusTraversable="true" layoutX="60.0" layoutY="14.0" prefHeight="200.0" prefWidth="320.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0" xmlns:fx="http://javafx.com/fxml">
            <items>
                <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="160.0" prefWidth="100.0" />
                <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="160.0" prefWidth="100.0" />
            </items>
        </SplitPane>
    </children>
</AnchorPane>
Run Code Online (Sandbox Code Playgroud)

我想要的是仅使用java代码在分割器的左锚定窗格中插入一个vbox.

可以这样做吗?

我是fxml的新手,所以任何帮助都会被贬低.

先感谢您.

Nik*_*los 12

添加fx:idAnchorPane您想要操作的:

<AnchorPane fx:id="leftAnchorPane" minHeight="0.0" minWidth="0.0"
    prefHeight="160.0" prefWidth="100.0" />
Run Code Online (Sandbox Code Playgroud)

作为@FXML成员字段在控制器中获取它:

public class FXMLDocumentController
{
    @FXML private AnchorPane leftAnchorPane;
    ...
}
Run Code Online (Sandbox Code Playgroud)

并在所需的位置操纵它(initialize()此处显示,几乎可以在任何其他地方):

public void initialize() {
    VBox vbox = new VBox();
    ...
    AnchorPane.setTopAnchor(vbox, 10.0); // obviously provide your own constraints
    leftAnchorPane.getChildren().add(vbox);
}
Run Code Online (Sandbox Code Playgroud)