我有一个简单的项目,其中包含带分割器的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>
我想要的是仅使用java代码在分割器的左锚定窗格中插入vbox。
可以这样做吗?
我是fxml的新手,所以任何帮助都会被贬低。
提前谢谢你。
答案 0 :(得分:12)
将fx:id
添加到您要操作的AnchorPane
:
<AnchorPane fx:id="leftAnchorPane" minHeight="0.0" minWidth="0.0"
prefHeight="160.0" prefWidth="100.0" />
将其作为@FXML
成员字段在控制器中获取:
public class FXMLDocumentController
{
@FXML private AnchorPane leftAnchorPane;
...
}
在理想的地方操纵它(initialize()
显示在这里,几乎可以在任何地方):
public void initialize() {
VBox vbox = new VBox();
...
AnchorPane.setTopAnchor(vbox, 10.0); // obviously provide your own constraints
leftAnchorPane.getChildren().add(vbox);
}
答案 1 :(得分:0)
您应该尝试使用JavaFX Scene Builder。它使得编辑fxml变得更加容易,因为它以图形方式完成。
http://www.oracle.com/technetwork/java/javafx/tools/index.html