JavaFX строит borderPane с файлами F XML - PullRequest
1 голос
/ 21 января 2020

Используя макет BorderPane, можете ли вы заполнить каждую его часть (верхнюю, левую, центральную, правую и нижнюю) с помощью отдельных файлов F XML?

Таким образом, у меня будет main.f xml нравится:

<BorderPane fx:controller="main.mainController"  xmlns:fx="http://javafx.com/fxml" >

    <top>
        reads from top.fxml
    </top>

    <left>
        reads from left.fxml
    </left>

    <center>
        reads from center.fxml
    </center>

    <right>
        reads from right.fxml
    </right>

    <bottom>
        reads from bottom.fxml
    </bottom>

</BorderPane>

1 Ответ

2 голосов
/ 21 января 2020

Есть 2 способа сделать это:

добавить его в java

После загрузки BorderPane вы можете загрузить другие файлы F XML и поместить их в BorderPane.

Например,

BorderPane root=FXMLLoader.load(this.getClass().getResource("root.fxml");//maybe this.getClass().getClassLoader().getResource("root.fxml"), depending on project structure
AnchorPane center=FXMLLoader.load(this.getClass().getResource("center.fxml");//maybe this.getClass().getClassLoader().getResource("center.fxml"), depending on project structure
root.setCenter(center);
stage.setScene(new Scene(root));

внутри F XML

Как @ Седрик указывает в комментариях, вы также можете используйте fx: include :

<center>
    <fx:include source="center.fxml"/>
</center>

В обоих вариантах он работает одинаково с top, bottom, left и right.

...