我尝试了各种变体在JavaFX中加载图像。
两个变体作品。 此处的示例:
同一包装中的图片主要:
new Image(getClass().getResourceAsStream("gesicht.png");
图片位于img-Package中,但位于src文件夹中:
Image img = new
Image(getClass().getResource("../img/gesicht.PNG").toExternalForm());
最后一个变种不起作用,我不明白为什么。有人可以解释为我吗?
img文件夹中的图像,在src文件夹外部
Image img = new Image(ClassLoader.getSystemResource("../../img/gesicht.png").toExternalForm());
我已经尝试了一切。但是,只要图片在src文件夹之外,我总是会收到NullPointerException或失败的URL
文件夹结构:
项目
src
img
答案 0 :(得分:0)
您需要确保img
文件夹是资源文件夹。
然后:
Image img = new Image(getClass().getResource("/img/gesicht.png").toExternalForm());
我认为相对路径从根开始,而不是源文件所在的地方。
答案 1 :(得分:0)
我有解决方法:
图片img =新图片(“ file:img / gesicht.png”); primaryStage.getIcons()。add(img);
替代: 图片图片=新图片(新File(“ img / gesicht.png”)。toURI()。toString());