gpt4 book ai didi

java - 如何在处理中为数组列表中的每个值创建一个 block ?

转载 作者:行者123 更新时间:2023-12-02 06:55:12 25 4
gpt4 key购买 nike

我想创建一个图形,其中为 ArrayList 中的每个值添加一个矩形。预期的最终结果是 ArrayList 中每个值在水平方向上的一系列矩形。

我尝试了以下代码,但在执行代码时出现 NullPointerException 错误。谁能告诉我如何获得我期望的输出?

import processing.core.*;
public class Processing extends PApplet {
ArrayList<Integer> test = new ArrayList<Integer>();
private PApplet parent;

int x = 100;
int y = 100;
public void setup() {
size(640, 600);
background(255);
test.add(10);
test.add(20);
test.add(30);
noLoop();
}

public void draw() {
for(int testing: test){
printTask(x,y);
}
}

public void printTask(int x, int y){
parent.rect(10,10,x,y);
}
static public void main(String args[]) {
PApplet.main(new String[] { "--bgcolor=#ECE9D8", "Processing" });
}
}

异常的堆栈跟踪:

Exception in thread "Animation Thread" java.lang.NullPointerException
at Processing.printTask(Processing.java:30)
at Processing.draw(Processing.java:25)
at processing.core.PApplet.handleDraw(PApplet.java:1602)
at processing.core.PApplet.run(PApplet.java:1503)
at java.lang.Thread.run(Unknown Source)

最佳答案

试试这个:

import java.util.ArrayList;

import processing.core.PApplet;


public class Processing extends PApplet {
ArrayList<Integer> test = new ArrayList<Integer>();

int x = 100;
int y = 100;

public void setup() {
size(640, 600);
background(255);
test.add(10);
test.add(20);
test.add(30);
noLoop();
}

public void draw() {
for (int testing : test) {
printTask(x + testing, y);
}
}

public void printTask(int x, int y) {
rect(x, y, 10, 10);
}

static public void main(String args[]) {
PApplet.main(new String[] { "--bgcolor=#ECE9D8", "Processing" });

}

}

我不知道您现在为什么需要父引用。正如人们已经评论的那样,你的 x,y 顺序有点困惑。另请注意,我正在传递调用 printTask,如下所示:

printTask(x + testing, y);

如果您只是按原样传递 x,则所有方 block 都将绘制在相同位置,因为 x 不会改变。

关于java - 如何在处理中为数组列表中的每个值创建一个 block ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17473470/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com