我想在for循环中创建带有图标的JLabel。
这是我的代码;
final JLabel[] box = new JLabel[27];
for(int i = 0; i < 25; i++){
int j = 1;
String r = "case" + j + ".png";
box[i] = new JLabel(new ImageIcon(getClass().getResource(r)));
j++;
}
图标的名称类似于case1.png
,case2.png
; ....
但是有一个零点异常。
Exception in thread "main" java.lang.NullPointerException at
java.awt.Container.addImpl(Unknown Source) at java.awt.Container.add(Unknown Source)
at Game.<init>(Game.java:185) at Game.main(Game.java:243) here are the exceptions
是不是因为我没有真正创建图标名称?提前谢谢。
答案 0 :(得分:2)
您要将JLabel
的所有姓名声明为case1.png
,因为在for loop
开始时,您正在指定int j = 1;
您的代码应如下所示:
final JLabel[] box = new JLabel[27];
int j = 1; //should be outside the for loop
for(int i = 0; i < 25; i++) {
String r = "case" + j + ".png";
box[i] = new JLabel(new ImageIcon(getClass().getResource(r)));
j++;
}