【发布时间】:2014-05-18 09:36:23
【问题描述】:
我在运行我的 java 代码时遇到 NullPointerException。
此方法中的两行都出现错误:
public void draw(Graphics g){
g.drawImage(bg, 0, 0, 50, 0, null);
g.drawImage(a.getImage(), 0, 0, 50, 0, null);
}
bg 是这样声明的:
bg = new ImageIcon("D:\\Eclipse\\Workspace\\Game\\src\\GameTest1\\back.png").getImage();
这是这样的:
private Animations a;
代码:
package GameTest1;
import java.awt.Image;
import java.util.ArrayList;
public class Animations {
private ArrayList scenes;
private int sceneIndex;
private long movieTime;
private long totalTime;
//CONSTRUCTOR
public Animations(){
scenes = new ArrayList();
totalTime = 0;
start();
}
//adds screen to array list and adds time to things
public synchronized void addScene(Image i, long t){
totalTime += t;
scenes.add(new OneScene(i, totalTime) );
}
//start animation from beginning
public synchronized void start(){
movieTime = 0;
sceneIndex = 0;
}
//change scenes
public synchronized void update(long timePassed){
if(scenes.size() > 1){
movieTime += timePassed;
if(movieTime >= totalTime){
movieTime = 0;
sceneIndex = 0;
}
while(movieTime > getScene(sceneIndex).endTime){
sceneIndex++;
}
}
}
//get current scene(image)
public synchronized Image getImage(){
if(scenes.size() == 0){
return null;
}else{
return getScene(sceneIndex).pic;
}
}
//get scene
private OneScene getScene(int x){
return (OneScene)scenes.get(x);
}
/////////////PRIVATE CLASSCEPTION///////////////
private class OneScene{
Image pic;
long endTime;
public OneScene(Image pic, long endTime){
this.pic = pic;
this.endTime = endTime;
}
}
}
我知道 nullPointerException 是什么,所以请不要将我链接到描述它是什么的帖子。我的问题是我看不到导致错误的原因。
【问题讨论】:
-
堆栈跟踪在哪里?
a是什么? -
"I know what a nullPointerException is, so please do not link me to a post describing what one is."-- 如果您知道 NPE 是什么,那么您应该已经知道如何调试它。你有没有测试过什么是空的?关键可能是 Graphics 对象——你是怎么得到它的? -
@JustinJasmann private Animations a;并且 Animations 类现在在帖子中
-
您发布了很多代码,但与您的问题无关。再说一次,你是如何调用 draw 的,你从哪里得到 Graphics 对象?再一次,你有没有测试过什么是空的?请避免因信息不足而关闭此问题。
-
@HovercraftFullOfEels 贾斯汀要求上课,我在我的主课顶部使用 CLASSNAME.run() 调用 draw,你的意思是“我在哪里得到 Graphics 对象"
标签: java image graphics nullpointerexception fullscreen