現在、次の状況があります。
FXML コントローラによってバックアップされる FXML ファイルを作成しました。画面はサイドバーとチャイルドホルダーで構成されています。サイドバーの要素をクリックすると、次のように子ホルダーに追加の FXML ファイルが読み込まれます。
childHolder.getChildren().addAll(FXMLLoader.load(getClass().getResource("SidebarItem1.fxml")));
これはうまくいきます。しかし、親コントローラーのコントローラーにロードされた FXML のいくつかの要素にアクセスしたいと考えています。ロードした後、子 FXML の要素を初期化しました。
私はすでにこの質問を見ました: JAVAFX - FXML - Access Loaded FXML Controls from Parent Controllerですが、そのようにすると、まだエラーが発生します:
FXMLLoader loader = new FXMLLoader(getClass().getResource("SidebarItem1.fxml"));
loader.setController(this);
childHolder.getChildren().addAll(loader.load());
someChildTextField.setText("Some text");
someChildTextField
aを指定しfx:id
、次のように初期化の上に配置しました。
@FXML public TextField someChildTextField;
それでも、NullpointerException が発生するので、まだコントロールを見つけることができないと思います。
親コントローラーにロードされた FXML の要素にアクセスする方法を知っている人はいますか?