当你像这样创建一个数组时:
static JButton[] fields = new JButton[72];
那个数组是空的。换句话说,即使该数组可以保留 72 个按钮,但它还没有这些按钮,您必须手动添加它们,如下所示:
for (int i = 0; i < 72; i++) {
fields[i] = new JButton();
}
但如果你不这样做,fields[i] 将默认为null,因此当你尝试执行field.setSize(20, 20) 时,该字段为空并会导致NullPointerException。
原始数组也有默认值。例如int数组的元素都是0,boolean数组的元素都是false。对于非原始数组(如JButton)也是如此,默认情况下元素都是null。
您的最终代码将如下所示:
for (int i = 0; i < 72; i++) {
fields[i] = new JButton();
fields[i].setSize(20, 20);
panel.add(fields[i]);
}
或:
for (int i = 0; i < 72; i++) {
JButton field = new JButton();
fields[i] = field;
field.setSize(20, 20);
panel.add(field);
}
甚至更短:
for (int i = 0; i < 72; i++) {
var field = fields[i] = new JButton();
field.setSize(20, 20);
panel.add(field);
}
还可以考虑将 72 转换为常量(static final 字段)。
© 版权声明
本站下载的源码均来自公开网络收集转发二次开发而来,
若侵犯了您的合法权益,请来信通知我们1413333033@qq.com,
我们会及时删除,给您带来的不便,我们深表歉意。
下载用户仅供学习交流,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担,访问及下载者下载默认同意本站声明的免责申明,请合理使用切勿商用。
THE END
暂无评论内容