2016-05-06 3 views
0

mainController.javaというfxmlファイルコントローラがあります。ビューは、このコードで表示されているとき、私は何をしたいです:JavaFXコントローラでonCreateメソッドを変更する方法

Stage.show(); 

私はプログラムが表示されている前に、私はいくつかのことを変更することができるように、コントローラファイル内にあるいくつかのメソッドを実行したいです。どうやってやるの?

答えて

0
あなたはルート要素が完全に処理される前に、JavaFXの-アプリケーションで呼び出される初期化可能インタフェースを使用しようとすることができ

:初期化可能-メソッドを実装するために、あなたのコントローラはこのインタフェースを実装するJavaDoc

場合は、あなたがしています。

コントローラクラスが構築されたら、すべての@FXMLフィールドとメソッドが注入され、その後、initialize()メソッドでアクセスできます。

+0

私は "実装することができます"と言うと、ここでは不正確です。コントローラは抽象的でなければならないので、インタフェースを追加することはメソッドを実装する必要があることを意味します。また、IMHOでは、このアプローチの利点についての説明は少し誤解を招くものです。コンストラクタでサービスをチェックすることもできます( 'initialize'メソッドを使うと、結果に応じて注入されたインスタンスを変更することができます)。 – fabian

+0

あなたが正しいのは、Initializableが実装されている場合、initializeを実装する必要があるということです。また、コンストラクタやinitialize()メソッドを使用する場合は、サービスによって異なります。 initialize()を使うと、コントローラークラスの@FXMLで注釈を付けられた属性とメソッドにアクセスできます。コンストラクタで外部リソースにアクセスすることもできます。ここをクリックしてください:https://docs.oracle.com/javase/8/javafx/api/javafx/fxml/doc-files/introduction_to_fxml.html#controllers – Supahupe

関連する問題