2013-04-15 32 views
-1

我用這個命令添加圖像圖標:不能添加一個ImageIcon

iadd.setIcon(new ImageIcon(getClass().getResource("add.png"))); 
top.add(iadd); 

,但我得到這個異常[異常線程「main」顯示java.lang.NullPointerException]

+0

是什麼頂?一個列表? –

+1

是'iadd'和'top'實例嗎? –

+0

IDD - > JButton的 頂 - >的JPanel –

回答

0

我想通的理由了,那是因爲我忘了定義後驗證的ImageIcon:

iadd.setIcon(new ImageIcon(getClass().getResource("add.png"))); 
validate(); 
top.add(iadd); 
0

可能性得到nullpointerException是iadd未初始化。

iadd.setIcon(new ImageIcon(getClass().getResource("add.png"))); 

或在線路

top.add(iadd); 

top未初始化。

+0

可以是在'top.add(IADD);'太 –

+0

@SimonArsenault是完全相同 –

+0

我已經初始化(IADD)作爲一個按鈕,(頂部)作爲面板 –

0

我們需要更多信息才能夠正確地幫助您。但是請確保你實例化了iaddtop

要實例化,通常使用關鍵字new。你應該有類似的東西,你上面的線:

X iadd = new X(...); // Probably ImageIcon in your case 
Y top = new Y(...); // Probably some kind of List (ArrayList, LinkedList, etc.) 

因爲我們不知道的類型,XY只有佔位符;)

+0

我有已經初始化(iadd)作爲一個按鈕和(頂部)作爲面板 –

0

我對你的異常是從正在添加的getClass的感覺().getResource(「add.png」)

這是可能的資源並不在當前包中發現了什麼?

+0

不,它不是資源,因爲之前有一個資源錯誤,我糾正它。 –

+0

只需在調試模式下輸入代碼並查看會發生什麼呢? –

+0

我已經這樣做了......它在該部分專門停止了「OutputStreamWriter」類: public void write(char cbuf [],int off,int len)throws IOException {cbuf,off,len ); –