【发布时间】:2015-11-21 00:58:01
【问题描述】:
lblPt1.setIcon(bd.pt1.getImage());
工作时
lblPt1.setIcon(bd.pts[0].getImage());
抛出 NullPointerException
pts[] 是一个包含“Point”对象 pt1 到 pt24 的数组。
我想用这个 for 循环来处理它,其中 pointLbls[] 是一个 JLabels 数组:
for (int i = 0; i < 24; i++)
pointLbls[i].setIcon(bd.pts[i].getImage());
我已经确定它是空的对象,而不是它的关联图像。 我究竟做错了什么?我对编程比较陌生。
【问题讨论】:
-
你是如何创建 pts[]-array 的?给我们更多的代码,这样我们就可以看到真正的问题隐藏在那里;-)
-
我使用这个创建了数组:
public Point[] pts = {pt1, ..., pt24};该数组中的类的构造函数立即实例化 Points(它调用 resetBoard):public void resetBoard() { pt1 = new Point(1, 2); //etc for all points }并且 Point 的构造函数如下所示:public Point(int color, int num) { colorValue = color; numPieces = num; GameBoard.piecesOnBoard += num; addImage(); } }我希望这已经足够了,感谢您的快速回复! -
在你刚刚提供的代码中,如果你真的在初始化数组“public Point[] pts = {pt1, ..., pt24};”在分配点“pt1 = new Point(1, 2); //etc for all points }”之前,它们都将为空。
-
if (bd == null) throw new NullPointerException("变量'bd'已经为空!"); for (int i = 0; i
-
非常感谢!感谢您,Backgammon 已恢复正常运行!为什么不提交一个快速的答案,以便我给你功劳?
标签: java arrays nullpointerexception