从控制器获取与控制器一起使用的fxml文件

时间:2018-11-13 05:28:44

标签: javafx fxml

当多个fxml文件具有相同的控制器类时,如何知道哪个fxml文件称为控制器类?

我有一个初始化类,其中我想从数据库中的数据自动完成两个文本字段。由于控制器类相同,因此在运行程序时会引发错误。因此,获取有关哪个fxml页面称为控制器类的详细信息将有所帮助。

2 个答案:

答案 0 :(得分:0)

您不应为不同的FXML文件使用相同的控制器类,因为这样一来您就无需处理此类问题。但是,如果您坚持要在加载FXML之前手动调用FXMLLoader.setController(还需要删除FXML内部对控制器的引用),则可以知道将哪个控制器实例分配给了哪个FXML

答案 1 :(得分:0)

假设您通过传递body而不是URL来指定要加载的fxml,则只需添加一个InputStream字段,即可将URL location插入值。 FXMLLoader自动将fxml网址注入到此字段:

FXMLLoader

对于具有不同功能的多个fxml使用相同的控制器似乎是不好的做法。请仔细检查,如果使用其他控制器不是更清洁的解决方案。


注意::每次加载包含带有控制器类名称作为值的@FXML private URL location; @FXML private void initialize() { System.out.println(location); } 属性的fxml时,都会 新实例 已创建控制器。