1

我正在创建一个应用程序,它有一个主 BorderPane,顶部有一个菜单栏。我想在选择特定菜单选项时更改 CENTER 内容。但是,当我这样做时,我加载到 CENTER 窗格中的 AnchorPane 不会调整大小以填充 CENTER 窗格。它保持它的首选尺寸。我尝试将其设置为 USE_COMPUTED_SIZE,但这并没有调整它的大小以填充 CENTER 窗格。我还尝试添加一个 HBOX 作为 AnchorPane 的包装器(我对 JavaFX UI 设计相当陌生),这也不起作用。

<BorderPane id="BorderPane" prefHeight="650.0" prefWidth="980.0" 
    xmlns="http://javafx.com/javafx/8.0.60" 
    xmlns:fx="http://javafx.com/fxml/1"  
    fx:controller="fileinventory.ApplicationFrameController">

<top><MenuBar BorderPane.alignment="CENTER">...</MenuBar></top>
<center><AnchorPane BorderPane.alignment="CENTER" /></center>
</BorderPane>

我使用来自主类的以下调用加载要在 CENTER 中设置的窗格:

public void viewClients() {
    ViewClientsController dlg = 
            new ViewClientsController(this.bundle, this.rootLayout);
}

并将 AnchorPane 的实际控制器加载到 CENTER 窗格。

public class ViewClientsController {

public ViewClientsController(ResourceBundle bundle, BorderPane layout) {
    FXMLLoader fxmlLoader = 
        new FXMLLoader(getClass().getResource("ViewClients.fxml"));
    fxmlLoader.setController(this);
    fxmlLoader.setResources(bundle);

    try {
        layout.setCenter(new AnchorPane((Parent) fxmlLoader.load()));
    } catch (Exception ignore) {}

我对 JavaFX 布局了解不多。我更像是一个后端人员,所以我在这里有点茫然。

4

0 回答 0