2013-04-12 79 views
7

我的應用程序中有兩個不同的階段,它們是使用相同FXML文件的幫助屏幕。我不想創建2個FXML文件,而只想使用一個,並有兩個調用相同fxml的控制器。帶有多個不同控制器的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

相關問題