2013-04-12 49 views
7

私のアプリケーションには、同じFXMLファイルを使用するヘルプ画面が2つあります。 2つのFXMLファイルを作成するのではなく、1つだけを使用し、同じfxmlを呼び出す2つのコントローラを使用したいと思います。複数の異なるコントローラを持つJavaFX 1 FXMLファイル?

唯一の問題は、コントローラーがFXMLファイルで割り当てられていることです。したがって、Controllerクラス自体のコードで、割り当てられたコントローラを変更する方法はありますか?

私は本当にそれぞれのコントローラを変更するためにFXMLファイルを複製しないでください。前もって感謝します。


答えて

7

あなたはFXMLファイルからfx:controller=""割り当てを削除し、ロード中にFXMLLoaderを介してコントローラを割り当てることができます。

FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("Your.fxml")); 
fxmlLoader.setController(this); 

try 
{ 
    fxmlLoader.load(); 
} 
catch (IOException exception) 
{ 
    throw new RuntimeException(exception); 
} 

Introduction to FXML section on custom componentsを参照してください。

+0

この方法を使用すると、 '@ FXML'タグを使用できなくなります。手動でそれらをすべて設定する必要があります。これは、ネストされたビューを持つときに面倒なことがあります。 – Kiril

関連する問題