2017-02-03 3 views
0

コントローラを作成した後、コントローラを別のfxmlに「再利用する」ことができるかどうかを知りたいと思います。言い換えれば、fxml用のコントローラを作成し、それを少し修正し、最初のものに影響を与えることなく別のfxmlに使用することができます。それ以外の場合は、コントローラからコードをコピーして変更を適用し、新しいコードを使用するように強制されています。FXMLで再利用可能なコントローラ。 1つのコントローラ(多少変更された)複数のfxmlファイルの場合

答えて

0

あなたは明らかに異なるFXMLファイルで異なるコントロールを持っているので、これは多くのユースケースを見ることはないので、注入管理の仕方ははっきりしません。

fx:controller属性をFXMLファイルから削除し、次のパターンを使用して手動でコントローラを設定します(例:異なる基本的なUIの異なるレイアウトを持つFXMLファイル) :

FXMLLoader loader = new FXMLLoader(getClass().getResource("/path/to/file.fxml")); 
MyConfigurableController controller = new MyConfigurableController(aParam, anotherParam); 
loader.setController(controller); 
Parent root = loader.load(); 
+0

ありがとうございます。私は次のような状況があります。私は動的に変化する2つの画面を持っています。画面Aにはメディアバーとコントローラがあります。画面Bでは、新しいメディアバーを作成したいのですが(同じですが、いくつかのボタンが追加されています)、追加された機能と同じコントローラを使用します。もちろん、コントローラを2番目のメディアバーの新しいものにハードコピーして、それを私の目的のために使用することはできますが、新しいものを処理できる新しく作成されたメディアバーに2番目のコントローラを追加するなど、 。これは何とか可能ですか? – TheNephalem

+0

@ TheNephalemこのシナリオでは、なぜあなたは継承を使用しないのですか? –

+0

私は疲れているので、私はもうほとんど考えることができません。大変ありがとうございました。 – TheNephalem

関連する問題