2013-04-12 31 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

相关问题