2016-11-25 62 views
0

我的问题是,我无法从我的Java项目与maven的子包加载图像。无法加载图像从包

This is my project structure

我tryed一些不同的代码段,但总是得到一个空指针异常。

我tryed:

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

Image类中有哪些包含构造函数的参数? – NormR

+0

你在这里使用了哪个Image类? 'java.awt.Image'只有一个无参数构造函数,它是Java <<定义的唯一的'Image'类。 –

+0

对不起,我忘了说我使用javafx。 –

回答

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。

0

这是我的错,我忘了说我正在使用JavaFX。 但我解决了我的问题。

我添加的图片目录作为的ressource文件夹,然后:

Image img = new Image(getClass.getRessource("/logo.png").toString); 

感谢您的帮助。