无法在我的java示例中加载照片

时间:2013-03-29 20:08:29

标签: java eclipse swing nullpointerexception imageicon

我正在尝试这个例子 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));

2 个答案:

答案 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();

如果您的图片位于项目内部。