java - 将对象传递到数组列表时如何获得空指针异常?
问题描述
背景
万岁!皮DAYYY!我想做的是在屏幕上放置随机点。gui 在屏幕状态 0 中打开,当我按下 1 时,屏幕状态变为屏幕状态 1,理论上应该在屏幕上添加随机点。但是,它不起作用。
问题
因此,如果您查看“dotz.add(new Dot());”行 编译器将其标记为空指针异常,但我不确定为什么会这样,因为我正在传递 Dot 对象
主控制器代码在这里-
package piday;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.util.ArrayList;
import com.sun.glass.events.KeyEvent;
public class controllah extends GameDriverV4 {
int state = 0;
Font font = new Font("Helvetica Neue", Font.BOLD,50);
Dot Dot = new Dot();
ArrayList<Dot> dotz;
int time = 0;
int delay = 50000;
public controllah() {
}
public static void main(String[] args) {
controllah h = new controllah();
h.start();
}
public void draw(Graphics2D win) {
if (state == 0) {
win.setColor(Color.BLACK);
win.drawString("'MONTE CARLO'", 10, 200);
win.drawString("'PRESS 1'", 10, 200+font.getSize()+10);
if (GameDriverV4.Keys[KeyEvent.VK_1]) {
state = 1;
}
win.drawString("'Needle Thing'", 10, 200+font.getSize()+10+50);
win.drawString("'PRESS 2'", 10, 200+font.getSize()+10+50+15);
if(GameDriverV4.Keys[KeyEvent.VK_2]) {
state = 2;
}
}
if (state == 1) {
/*
if (time>delay) {
time = 0;
}
else {
time ++;
}
*/
dotz.add(new Dot());
for (int i = 0; i<dotz.size()-1; i++) {
dotz.get(i).draw(win);
}
}
if (state == 2) {
}
}
}
点目标代码在这里-
package piday;
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.util.Random;
public class Dot {
Color incolor = Color.BLACK;
Color outcolor = Color.BLUE;
boolean in = true;
int x;
int y;
public Dot() {
Random rand = new Random();
this.x = rand.nextInt(800);
this.y = rand.nextInt(800);
}
public void draw(Graphics2D g) {
if (in) {
g.setColor(incolor);
}
else {
g.setColor(outcolor);
}
g.fillRect(x-1, y-1, 3, 3);
}
}
我推断,因为我一直在尝试将一个新的“Dot”对象添加到数组列表“dotz”中,所以它会很好,因为新的“Dot”不是空对象
解决方案
推荐阅读
- mongodb - 在无序批量插入的情况下 InsertManyResult.inserted_ids 的顺序
- python - Conda 与该确切 PC 上的环境生成的要求产生冲突
- python-3.x - 排列成python中的列表
- c# - Newtonsoft JSON字符串反序列化与\转义字符问题
- pdf-generation - 当从 HTML 生成大型 pdf 时,Websupergoo abcpdf 会截断页面数据的结尾
- javascript - 使用 redux 更新状态时推送反应的工作
- javascript - 这个javascript函数在做什么?
- javascript - 如何修改此验证逻辑以允许输入字符和一些特殊字符?
- wordpress - recaptcha v3 和联系表 7 集成的问题
- php - 如何连接和显示来自 wordpress 数据库的数据