我创建了一个从包装中获取图像的对象,然后稍后将其绘制在屏幕上。当我在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;
}}
}

最佳答案

有很高的可能性

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

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


  ClassLoader.getResource is "absolute";
  
  Class.getResource相对于类的包,除非您
   给它加上一个“ /”前缀。


希望这可以帮助。

10-02 07:33