2017-03-16 9 views
0

クラス:DbUserController.csJavaFXの別のコントローラクラスからフォームにアクセスするにはどうすればよいですか?

 btnTamam.setOnAction((ActionEvent event) -> { 
     ...... 
     ........ 
     FXMLLoader fxmlLoader = new FXMLLoader(); 
     fxmlLoader.setLocation(getClass().getResource("/View/PerformancePage.fxml"));   
     AnchorPane frame = fxmlLoader.load(); 
     PerformancePageController c = (PerformancePageController) fxmlLoader.getController(); 
     c.txtUrl.setText("TEST TEST"); 
    }); 

txtUrl = PerformancePage.fxmlテキストフィールド
c.txtUrl.setText( "TEST試験")。

私が指しているコードは機能していません。

TextBoxには「TEST TEST」は書き込まれません。

答えて

0

新しいペインロードされています

AnchorPane frame = fxmlLoader.load(); 

をしかし、あなたが表示されたシーングラフにそのペインを追加していません。

+0

わかりました。どうすれば修正できますか? –

+0

フレームを現在のシーンに追加するか、それを独自のステージに配置する必要があります。コードスニペットには、私があなたに提供したものより正確な情報がありません。 –

+0

または、既に別のところで 'PerformancePage.fxml'をロードして*を表示している場合は、表示されたインスタンスをロードするローダからコントローラを取得する必要があります。要点は、表示されるUIのインスタンスに接続されているコントローラが必要なことです。 –

関連する問題