【发布时间】:2016-11-02 14:26:36
【问题描述】:
我已经编写了几个星期的代码,但我被这个空指针异常卡住了。
它给了我以下错误:
java.lang.NullPointerException
at processing.core.PGraphics.image(PGraphics.java:3768)
at processing.core.PApplet.image(PApplet.java:12175)
at beginfase.tekenBeginscherm(beginfase.java:126)
at beginfase.draw(beginfase.java:51)
at processing.core.PApplet.handleDraw(PApplet.java:2412)
at processing.awt.PSurfaceAWT$12.callDraw(PSurfaceAWT.java:1540)
at processing.core.PSurfaceNone$AnimationThread.run(PSurfaceNone.java:316)
它标记了这行代码:image(kaarten[r],50,50);
String[] kaart = {
"Aclubs.png",
"2clubs.png",
"3clubs.png",
"4clubs.png",
"5clubs.png",
"6clubs.png",
"7clubs.png",
"8clubs.png",
"9clubs.png",
"10clubs.png",
"Jclubs.png",
"Qclubs.png",
"Kclubs.png",
};
PImage[] kaarten = new PImage [kaart.length];
void settings() {
size(round(displayWidth * 0.9), round(displayHeight * 0.9));
}
void setup() {
laadBeginscherm();
// schudKaarten();
}
void draw() {
tekenBeginscherm();
// schudKaarten();
// println(mouseX);
//println(mouseY);
}
我的一些代码我知道它可能是一团糟而且非常糟糕,但我找不到 nullpointerexception 错误是什么。请帮忙。
是的,我现在添加了 10clubs.png
这是我用来加载图像的代码。
if (scherm == 3) {
background(0, 148, 0);
for (int g = 0; g < 12000; g = g+round((displayWidth * 0.9))/12) {
int r = int (random(kaarten.length));
println(r);
image(kaarten[r],g+25,50);
}
}
编辑: 好的,我做了一个更小的(迷你)版本的错误。它仅使用 1 张卡,但这只是示例,因此您可以自己添加 .png
String[] kaart = {
"Aclubs.png",
};
PImage[] kaarten = new PImage [kaart.length];
void setup() {
kaart = loadImage("Aclubs.png");
}
void draw() {
tekenBeginscherm();
}
void tekenBeginscherm() {
if (keyPressed == true ) {
background(0, 148, 0);
for (int g = 0; g < 12000; g = g+round((displayWidth * 0.9))/12) {
int r = int (random(kaarten.length));
println(r);
image(kaarten[r], 50, 50);
}
}
}
如果我尝试添加这个:kaart = loadImage("Aclubs.png"); in setup()
程序会给我这个错误:
类型不匹配,“processing.core.PImage”与“java.lang.String[]”不匹配
【问题讨论】:
-
请发布minimal reproducible example,说明您是如何加载和显示图像的。
-
PImage[] kaarten = new PImage [kaart.length];使用null值初始化数组。您是否曾经构造过PImage的实例以放入数组中? -
您是否打算在您的
String数组中添加一个10clubs.png? -
@dorukayhan 请注意,这是一个processing 问题,并且此错误发生在处理本身内部。规范重复的答案并不真正适用于这类问题。
标签: java nullpointerexception processing