2016-11-25 104 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); 

感謝您的幫助。