我想在 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
只是因为我没有真正创建图标名称吗?提前致谢。
最佳答案
您将所有 JLabel
的名称声明为 case1.png
,因为在 for 循环
开始时,您正在分配 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++;
}
关于java - JLabel 数组中的空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22880419/