我创建了一个从包中获取图像的对象,然后在屏幕上绘制它。当我在netbeans中运行代码时,它工作正常。在netbeans之外,我得到一个空指针异常错误。 这是我的代码。我使用println部分来查看“frog”是否等于null。当run说它等于“/images/upFrogStill.png”时所以我不确定为什么空指针异常。 错误发生在“ImageIcon ii ...”行。
public class Frog extends Sprite implements Commons {
String frog = "/images/upFrogStill.png";
public Frog() {
System.out.println("frog = " + frog);
ImageIcon ii = new ImageIcon(this.getClass().getResource(frog));
image = ii.getImage();
width = image.getWidth(null);
height = image.getHeight(null);
resetState();
}
void resetState() {
if(frog != null){
frog = "/images/upFrogStill.png";
x = 185;
y = 397;
}}
}
答案 0 :(得分:4)
有很高的可能性
ImageIcon ii = new ImageIcon(this.getClass().getResource(frog));
正在返回null,因为无法找到资源。
如果您在netbeans之外运行,请确保在类路径中包含该文件。
ClassLoader.getResource is "absolute";
Class.getResource是相对于类的包的,除非你 在前面加上'/'。
希望这有帮助。