4
私はFXMLoaderでロードしたシーンからコントローラを取得したいと思います。ユースケースは、次のとおりです。JavaFX 2.0 + FXML。別のタスクからシーン値を更新する
- マイJSONマネージャは、私が立ち上げてきたタスクが、私は空のシーンを持って、その後
Parent p = FXMLLoader.load(getClass().getResource("foo.fxml")); Scene scene = new Scene(p); stage.setScene(scene);
を使用して、新しいシーンを示してJSONオブジェクト
を受けます。
は、今私は、コンポーネント
AnchorPane pane = (AnchorPane)((AnchorPane) scene.getRoot()).getChildren().get(0); for(Node node : pane.getChildren()){ String id = node.getId(); if(id.equals(NAME)){ ((TextField)node).setText(value); } }
私の質問を埋めるために、これを行うこれを行うための簡単な方法はありますか?私は
<AnchorPane id="AnchorPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="526.0" minWidth="356.0" prefHeight="526.0" prefWidth="356.0"
xmlns:fx="http://javafx.com/fxml" fx:controller="bar.foo">
私は事前
おかげで、それはnode.lookup使用してポイントでした。私は現在のコントローラインスタンスが必要なので、あなたがコントローラを取得するために表示する方法は私のために動作しません。この方法で、新しいコントローラと新しいペインが作成されます。 – Javier
なぜですか?このコードを 'FXMLLoader.load(getClass()。getResource(" foo.fxml "));の代わりに使用すると、コード内と同じペインが表示されます。 –
@Javier。答えを更新しました。見てください。 –