どこでも、fx:rootの使用とプログラムによるルートノードの設定に関連するFXMLLoader#setController()の使用に関する説明があります(Oracle DocsとSOの両方の回答にこのパターンがあります)。それは要件ですか?または、古き良きコンテナーを使用して通常のFXML(おそらくSceneBuilderを使用)を作成し、後でプログラムでコントローラーのみを設定できますか?
FXMLの場合:
<BorderPane fx:id="root" prefHeight="500.0" prefWidth="600.0" xmlns:fx="http://javafx.com/fxml" > </Borderpane>
一部のコード(おそらくコントローラー)では:
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("fxml_example2.fxml"));
fxmlLoader.setController(this);
try {
fxmlLoader.load();
} catch (IOException exception) {
throw new RuntimeException(exception);
}