TOPにメニューバーがあるメインBorderPaneを持つアプリを作成しています。特定のメニュー オプションが選択されたときに、CENTER の内容を変更したいと考えています。ただし、これを行うと、CENTER ペインにロードした AnchorPane のサイズが変更されず、CENTER ペインがいっぱいになりません。好みのサイズを保ちます。USE_COMPUTED_SIZE に設定しようとしましたが、中央ペインを埋めるためにサイズ変更されません。また、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 レイアウトについてはよくわかりません。私はどちらかというとバックエンドの人なので、ここで少し途方に暮れています。