我正在尝试使用Processing 3创建一个“ Paint”应用程序,并且我想添加按钮来更改颜色(以后用于画笔,大小等)。我被卡住了,因为我不断得到NullPointerException将按钮添加到我的数组的提示。(我知道我可以在创建不带数组的每个按钮之后只要求mouseX和Y,但是对我来说似乎有点不专业,并且随着时间的推移会变得非常混乱。)错误:第24行->“ allButtons [counter] .name = Name;”*旁注:我对Processing / Java xd相当陌生
1 回答
九州编程
TA贡献1785条经验 获得超4个赞
当创建这样的数组时:
Button[] allButtons = new Button[100];
您正在创建一个可以容纳100个Button
实例的数组。但是该数组开始为空。尝试做这样的事情:
println(allButtons[0]);
您会看到输出了null
,这意味着该值基本上为空。您实际上尚未Button
向阵列添加任何实例。这就是为什么会出现错误的原因:因为您正在尝试使用不存在的值。
要将实例添加到数组,您可以执行以下操作:
allButtons[0] = new Button();
在这一点上,使用该值将是安全的:
allButtons[0].name = "cancel";
顺便说一句,您可能会考虑只使用anArrayList
而不是数组。或者利用Processing的数组函数,该函数允许您向数组中添加元素,而不是创建大小为100的数组。
另外,将来请尝试使用正确的命名约定。变量应以小写字母开头,类应以大写字母开头。这使您的代码更容易阅读。
添加回答
举报
0/150
提交
取消