java - JavaFX 异常:内部图形尚未初始化
问题描述
我正在尝试在构造函数中加载一个控制器,为此我必须先调用loader.load()
,否则getController()
返回null
,正如我在多个stackoverflow答案中所读到的那样。
protected static final FXMLLoader connectLoader = new FXMLLoader(GuiManager.class.getResource("/scenes/connect.fxml"));
private final ConnectController connectController;
public Gui() {
try {
connectLoader.load();
} catch (IOException e) {
e.printStackTrace();
}
connectController = connectLoader.getController();
}
然而 load() 抛出这个异常:
javafx.fxml.LoadException:
/home/user/IdeaProjects/project/target/classes/scenes/connect.fxml:13
...
Caused by: java.lang.RuntimeException: Internal graphics not initialized yet
...
控制器在 fxml 的第一行中指定:
<AnchorPane xmlns="http://javafx.com/javafx/10.0.2-internal" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.project.gui.ConnectController">
fxml 文件的第 13 行(在异常中引用)是相当无害的
<Image url="@../image.png" />
非常欢迎任何建议,在此先感谢您。
解决方案
问题是 Application 的 start() 方法还没有完成执行,并且在调用 load() 时还没有创建阶段。
关于如何测试这个的好建议也在这里
推荐阅读
- angular - mat-select does not display value when doing two way binding in reactive from
- proxy - Conda keeps trying to connect to a proxy even though it should be desabled
- java - Correct way of field initialisation in static code block in Java
- sql - How to get distinct rows based on multiple columns are include the latest row from another table?
- javascript - 如何获取我单击的特定表单的输入字段的值,所有表单及其输入具有相同的类但值不同
- python - 我可以在忽略黑色像素的情况下迭代图像吗?
- javascript - 当我从下拉列表中选择特定列表项时,我想调用 JavaScript 函数
- mvvm - 为注册模块使用 1 个或多个视图模型(登录 - 注册 - 重置通行证)?
- python - How to separate a dataset into more than 2 random samples
- python - statsmodel 获取 resid_studentized_external