2011-04-21 106 views
0

我在学习如何用Java编程的过程中编写了一个Snake克隆。它是一个使用图像的小程序(使用getImage(getDocumentBase(),“gfx/image.png”)载入init());当我在我的IDE(Eclipse)中运行小程序时,它运行良好,所有的图像显示应用程序中的Java小程序

我的目标是创建一个可执行的jar文件,我可以比applet更容易传递所以我创建了一个新类并使用JPanel来托管我的小程序。 getDocumentBase()总是返回null,导致在文件系统上找不到图像,导致一个空的屏幕。

我知道游戏运行,因为我可以导航所有菜单并查看所有打印的文本。只是图像未加载。

有没有办法解决这个问题?我应该加载我的图像吗?

感谢

回答

2

您可以通过使用getResource()方法从Class从你的jar文件中加载资源。在DevX有向您展示如何做到这一点的applet和应用程序一个很好的教程:

http://www.devx.com/tips/Tip/5697

还有从Oracle描述如何访问资源的位置无关的文章:

http://download.oracle.com/javase/1.4.2/docs/guide/resources/resources.html

基本上你所访问的图像是这样的:

URL myurl = this.getClass().getResource("/myimage.gif"); 
Toolkit tk = this.getToolkit(); 
img = tk.getImage(myurl); 
0

加载你的形象是这样,而不是:

public void init() { 
    URL url = getClass().getResource("/gfx/image.png"); 
    Image image = getImage(url); 
} 

然后你gfx/image.png文件添加到您的罐子,保持路径。请注意,jar文件只是zip文件。