【发布时间】:2019-02-13 09:11:51
【问题描述】:
我尝试了不同的变体来在 JavaFX 中加载图像。
两个变体工作。 此处示例:
同一包中的图片 als Main:
new Image(getClass().getResourceAsStream("gesicht.png");
图像在 img-Package 但在 src 文件夹内:
Image img = new
Image(getClass().getResource("../img/gesicht.PNG").toExternalForm());
最后一个变体不起作用,我不明白为什么。有人可以解释一下吗?
img-Folder 中的图像,在 src 文件夹之外
Image img = new Image(ClassLoader.getSystemResource("../../img/gesicht.png").toExternalForm());
我什么都试过了。但是只要图像在 src 文件夹之外,我总是会收到 NullPointerException 或失败的 URL
文件夹结构:
项目
-
src
- 申请
- Main.java
- 申请
-
图片
- gesicht.png
【问题讨论】:
-
你试过右键图片复制相对路径
-
在运行应用程序时,您需要确保
img目录包含在类路径中。看起来所说的目录应该是资源目录,请确保它在您的 IDE 中被标记为这样。 -
它在你的屏幕截图中显示
gesicht.png,而不是Unbekannt.PNG或icon.png;此外,“向上”导航不适用于资源路径;改用从类路径的根开始的完整路径:new Image(getClass().getResource("/img/gesicht.png").toExternalForm()) -
请阅读 class.getResource 的 api 文档 - 它准确地解释了路径必须如何构建...
标签: javafx