我的应用程序中有两个不同的阶段,它们是使用相同 FXML 文件的帮助屏幕。我不想创建 2 个 FXML 文件,而是只使用一个并有两个调用相同 fxml 的 Controller 。
唯一的问题是 Controller 是在 FXML 文件中分配的。那么,有没有办法使用 Controller 类本身中的代码更改分配的 Controller ?
我真的很想避免复制 FXML 文件只是为了更改每个文件中的 Controller 。提前致谢。
最佳答案
您可以删除 fx:controller=""
来自 FXML
的分配文件并通过 FXMLLoader
分配 Controller 在负载期间。
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 .
关于controller - 具有多个不同 Controller 的 JavaFX 1 FXML 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15964832/