【发布时间】:2018-08-15 09:02:42
【问题描述】:
我在 FXML 文件中有一个组件,其中包含以下行:
<AnchorPane xmlns="http://javafx.com/javafx/9.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="DataTableController">
我正在尝试在控制器中加载 fxml:
public DataTableController() throws IOException {
FXMLLoader.load(getClass().getResource("DataTable.fxml"));
}
我没有扩展 Application 的类,也没有 main 方法,因为我已经有一个由另一个应用程序(自定义场景构建器)启动的窗口。所以,我只想在自定义视图组件的窗口上显示 AnchorPane。我可以用我的控制器做到这一点,没有问题。我的问题是当我不使用 fx:root 时我不知道如何加载 FXML,因为当我将 AnchorPane 更改为 fx:root 时,我可以加载 FXML 并设置 root 并设置控制器并查看 fxml 文件的内容在我的窗户上。但是,然后我有一个问题,我无法在 fxml 文件中设置控制器,因为它是设置控制器的重复,如果我没有在 fxml 文件中设置控制器,那么我会收到一个错误,因为我有一个需要设置控制器的按钮。
那么,我该怎么办?我们什么时候使用 fx:root 以及为什么? (我用谷歌搜索并检查了其他 SO 条目,但我仍然不清楚)。任何对我的问题的建议和关于 fx:root 的一些示例的清晰解释将不胜感激。
我对 JavaFX 和 SO 很陌生,所以如果我不能很好地解释我的问题,请让我澄清一下自己。感谢您的帮助!
编辑:按照@fabian 的建议更改了 java 类,我之前实际尝试过 and get this error as I mentioned above.
【问题讨论】:
标签: javafx