基本目標是讓一個JPanel以3x3模式填充9個白色方塊;正方形是150x150空白的白色.jpg文件。它必須是這種方式,因爲以後,程序必須將空白方塊更改爲一系列簡單圖像之一,並且必須能夠隨時更改任何方塊。 問題是,我得到一個NullPointerException。我不得不認爲這與將數組初始化爲空有關,但如果我不這樣做,NetBeans(是的,NetBeans ...)似乎會生我的氣。如果我嘗試聲明數組的大小,則相同。 (這將是...... 「數組類型[ARRAYSIZE] arrayName中;」?,是」Java - 使用ImageIcons通過循環(NullPointerException)填充一個JLabel數組
EGH,我只是猜測瘋狂
編輯 - NullPointerException異常固定,但現在空(白)圖片。簡單地沒有出現在框架的下方編輯代碼以反映其新的狀態,更可能相關的行添加
這裏是所有相關的代碼:
JFrame controller = new JFrame("SmartHome Interface");
controller.setVisible(true);
controller.setSize(480,500);
controller.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//[...]
JPanel labelPanel = new JPanel();
//[...]
labelPanel.setBackground(Color.GREEN);
//[...]
ImageIcon blank = new ImageIcon("../Images/blank.jpg");
//[...]
controller.add(labelPanel);
//[...]
JLabel[] labels = new JLabel[9];
for (int i = 0; i <= 8; i++)
{
int xLowBound;
int xUpBound;
int yLowBound;
int yUpBound;
//Maths for positioning the labels correctly. Should be 150px in size with 10px gaps each.
xLowBound = (i % 3) * 160;
xUpBound = xLowBound + 150;
yLowBound = (i/3) * 160;
yUpBound = yLowBound + 150;
labels[i] = new JLabel();
labels[i].setIcon(blank);
labels[i].setBounds(xLowBound, yLowBound, xUpBound, yUpBound);
labelPanel.add(labels[i]);
}
另外.....是文件路徑爲ImageIcon正確? 代碼本身位於「src/smarthome」和「src/Images」中的圖像
如果我違反了任何論壇公約/行爲準則/等,請致歉。紐比在這裏,試圖小心不要,但我可能已經忘記了一些東西。
謝謝,我照你說的,這正是做,我不再收到錯誤,但是空(白)圖像只未出現在框架上。 – Malix