2

我创建了一个从包中获取图像的对象,然后稍后将其绘制在屏幕上。当我在 netbeans 中运行代码时,它工作正常。在 netbeans 之外,我得到一个空指针异常错误。这是我的代码。我使用 println 部分来查看“frog”是否等于 null。当运行时说它等于“/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;
}}
}
4

1 回答 1

4

很有可能是

ImageIcon ii = new ImageIcon(this.getClass().getResource(frog));正在返回null,因为它找不到资源。

如果您在 netbeans 之外运行,请确保将文件包含在您的类路径中。

ClassLoader.getResource is "absolute";

Class.getResource 是相对于类的包的,除非你在它前面加上'/'。

希望这可以帮助。

于 2013-08-26T20:37:44.950 回答