我的问题是我无法使用maven从我的java项目中的子包中加载图像。
我尝试了一些不同的代码片段,但总是得到一个Nullpointer异常。
我试过:
Image image = new Image("/frontend/pictures/logo.png");
Image image = new Image("frontend/pictures/logo.png");
Image image = new Image("pictures/logo.png");
Image image = new Image(getClass().getResource("frontend/pictures/logo.png").toString());
在另一个项目中,它对我来说很好,但现在我不知道我做错了什么。
感谢您的帮助。
答案 0 :(得分:2)
这是我使用ImageIcons创建的一个很好的图像加载方法:
public Image img(String path) {
ImageIcon icon = new ImageIcon(path);
return icon.getImage();
}
然后,当您想加载图片时,只需使用:
Image image = img("frontend/pictures/logo.png")
这应该有效。 请注意,如果要使用可运行的JAR,则必须使用此实现:
static Image setImage(String path) {
Image tmp = null;
try {
tmp = ImageIO.read(/*Class name*/.class.getResourceAsStream(path));
} catch (IOException e){
e.printStackTrace();
}
return tmp;
}
并输入:
Image image = setImage("/org/.../logo.png");
将您的图片放在JAR的org文件夹内的某个子文件夹中。
答案 1 :(得分:0)
我忘记说我使用JavaFX是不好的。 但我解决了我的问题。
我将图片dir添加为ressource文件夹,然后:
Image img = new Image(getClass.getRessource("/logo.png").toString);
感谢您的帮助。