应用程序中的Java小程序

时间:2011-04-21 08:20:19

标签: java applet

我在学习如何使用Java编程的过程中编写了一个Snake克隆。它是一个使用图像的applet(使用getImage(getDocumentBase(),“gfx / image.png”)在init()方法中加载;

当我在IDE(Eclipse)中运行applet时,它运行正常并显示所有图像。

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

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

这有什么办法吗?我应该以另一种方式加载我的图像吗?

由于

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:0)

改为加载您的图片:

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

然后将您的gfx/image.png文件添加到jar中并保留路径。请注意,jar文件只是zip文件。