我正在创建一个应用程序,其主要BorderPane在TOP中带有菜单栏。我想在选择特定菜单选项时更改CENTER内容。但是,当我这样做时,我加载到CENTER窗格的AnchorPane没有调整大小以填充CENTER窗格。它保持了它的首选尺寸。我已经尝试将其设置为USE_COMPUTED_SIZE,但这不会调整它以填充CENTER窗格。我还尝试在AnchorPane周围添加一个HBOX作为包装器(我对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布局了解不多。我更像是一个后端人,所以我在这里有点亏。