2013-08-07 27 views
2

即時通訊新到Java,並同時用java-7的OpenJDK月食Linux Mint的運行這個(我想,雖然不知道是否日食都有自己的太陽JDT),的ImageIcon例外

public class Gui extends JFrame{ 
private JComboBox box; 
private JLabel picture; 
private static String[] filename = {"b.PNG","x.PNG"}; 
private Icon[] pics = {new ImageIcon(getClass().getResource(filename[0])), 
    new ImageIcon(getClass().getResource(filename[1]))}; 



Exception in thread "main" java.lang.NullPointerException 
at javax.swing.ImageIcon.<init>(ImageIcon.java:205) 
at bucky.Gui.<init>(Gui.java:10) 
at bucky.apples.main(apples.java:12) 

我不能看到是什麼問題(Linux Mint的15肉桂)

+0

檢查getClass()。getResource(文件名[0])是否實際上會轉到您的圖像的路徑... – gtgaxiola

+0

只需將'b.PNG'和'x.PNG'放在'GUI.class'文件旁邊。 ..更多信息可以在此找到[answer](http://stackoverflow.com/a/9866659/1057230):-)。希望能幫助到你 :-) –

回答

2

此例外是ImageIcon的構造函數拋出的,並指出getClass().getResource(filename[0])getClass().getResource(filename[1])爲null

您指定的路徑不正確。確保文件夾中,這些照片是在你的classpath

一個簡單的可以進行檢查:

File f = new File("b.PNG"); 
System.out.println(f.exists()); 

應打印您true

2

getClass().getResource(filename[0])其中filename[0]b.PNG表示相對路徑,並會嘗試從你的班級Gui加載來自同一文件夾(即相同的包)的圖像。

確保圖像確實在該位置。

如果您的圖像處於默認包(即您的根源文件夾),您可以將它們加載爲getClass().getResource("/" + filename[0])(即使用絕對路徑)。

0

哦人類的錯誤可能是如此的卑鄙。而不是b.PNG和x.PNG,我的文件是a.PNG和x.PNG 真是一個恥辱,但thx儘管如此。