在FXML中引用类资源

时间:2014-02-07 03:14:01

标签: java maven javafx

我有一个使用Maven的JavaFX程序,带有标准的maven文件树:

enter image description here

如何在layout.fxml中引用logo.png,假设布局是通过调用

来膨胀的
Parent root = FXMLLoader.load(getClass().getResource("/fxml/layout.fxml"));
MainApp中的

我试图使用

这样做
<image>
<Image url="@/graphics/logo.png" />
</image>

并在该文件路径上尝试了很多变体(包含和不包含@),但继续抛出

java.lang.reflect.InvocationTargetException 
... 
Caused by: java.lang.IllegalArgumentException: URL must not be empty

在创建网址的行

1 个答案:

答案 0 :(得分:2)

您正在尝试使用名称“backButton.png”找到图像资源,而它应该是“logo.png”。

如果问题仍然存在,请尝试

<Image url="@../graphics/logo.png" />

来自official FXML tutorial

  

位置解析运算符(由“@”前缀表示   attribute value)用于指定属性值   被视为相对的位置当前文件而不是   简单的字符串。