Dea*_*hiu 21 java javafx-2 fxml
我已设法在父fxml(mainMenu UI)下加载子fxml(子UI).我创建了一个id为"mainContent"的AnchorPane.此窗格绑定到4个方面,并且更改符合舞台.
子窗口将加载到"mainContent"锚定窗格中.但是,我无法弄清楚如何让孩子与其父"mainContent"一起改变.
我的孩子UI就是这样调用的.
@FXML
private void mnuUserLevel_onClick(ActionEvent event) {
FXMLLoader loader = new FXMLLoader(getClass().getResource("DBedit.fxml"));
loader.setController(new DBeditEntityUserlevel());
try {
Node n = (Node)loader.load();
mainContent.getChildren().add(n);
} catch (IOException e){
System.out.println(e.getMessage());
}
}
Run Code Online (Sandbox Code Playgroud)
为了进一步说明我的问题,请看我的快照.红场就是孩子.黄色方块是MainMenu父级的"mainContent"AnchorPane.

小智 42
如果将AnchorPane内窗格的topAnchor,bottomAnchor,leftAnchor,rightAnchor值设置为0.0,则面板将被拉伸到周围AnchorPane的完整范围.
文档链接:AnchorPane
编辑:在文档链接中,您还可以看到如何在Java代码中设置这些值.
FXML示例:
<AnchorPane fx:id="mainContent" ...>
<StackPane fx:id="subPane" AnchorPane.topAnchor="0.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" ></StackPane>
</AnchorPane>
Run Code Online (Sandbox Code Playgroud)
Eth*_*anP 27
如果你有一个Region,这是一个子类的Node是包括Axis,Chart,Control,和Pane(这可能包括你可能想加载任何东西),你可以绑定孩子的大小类似他们是如何做家长的空间在这里.现在,任何未来父母大小的调整都将反映在孩子身上.
Region n = (Region)loader.load();
mainContent.getChildren().add(n);
n.prefWidthProperty().bind(mainContent.widthProperty());
n.prefHeightProperty().bind(mainContent.heightProperty());
Run Code Online (Sandbox Code Playgroud)