我正在尝试这个例子 http://zetcode.com/tutorials/javagamestutorial/movingsprites/ 但是我得到了这些错误
Exception in thread "main" java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(Unknown Source)
at rtype.Craft.<init>(Craft.java:19)
at rtype.board.<init>(board.java:28)
at rtype.Rtype.<init>(Rtype.java:9)
at rtype.Rtype.main(Rtype.java:20)
我尝试将我的图片放在项目文件中的不同位置 甚至写出绝对的道路。
我做错了什么? 我用eclipse。
编辑:对不起,这是代码
private String craft = "craft.png";
private int dx;
private int dy;
private int x;
private int y;
private Image image;
public Craft() {
ImageIcon ii = new ImageIcon(this.getClass().getResource("C:\\Users\\Name\\workspace\\Craft\\src\\resource\\craft.png"));
image = ii.getImage();
x = 40;
y = 60;
}
上面的这个是我目前的尝试,而示例建议:
ImageIcon ii = new ImageIcon(this.getClass().getResource(craft));
答案 0 :(得分:2)
从ImageIcon
构造函数抛出异常。通过ImageIcon
初始化URL
这样的示例,constructor:
String craft = "craft.png";
...
ImageIcon ii = new ImageIcon(this.getClass().getResource(craft));
原因可能是您工作区中缺少文件“craft.png”。确保加载程序可以找到指定的文件,this.getClass().getResource(craft)
不为空。
有关详细信息,请参阅Loading Images Using getResource教程以及如何添加和加载图像及其他资源的一些示例。
答案 1 :(得分:2)
this.getClass().getResource
主要用于从jar文件运行代码并且需要加载jar内的资源。
在您的情况下,您可能只需将其加载为
ImageIcon ii = new ImageIcon("C:/Users/Name/workspace/Craft/src/resource/craft.png");
image = ii.getImage();
或者甚至
ImageIcon ii = new ImageIcon("craft.png");
image = ii.getImage();
如果您的图片位于项目内部。