【问题标题】:Java applet in application应用程序中的 Java 小程序
【发布时间】:2011-04-21 16:35:41
【问题描述】:

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

当我在我的 IDE (Eclipse) 中运行小程序时,它运行良好并显示所有图像。

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

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

有没有办法解决这个问题?我应该以其他方式加载图像吗?

谢谢

【问题讨论】:

    标签: java applet


    【解决方案1】:

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

    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);
    

    【讨论】:

      【解决方案2】:

      像这样加载您的图像:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-05
        • 1970-01-01
        • 2013-04-07
        • 2013-01-07
        • 1970-01-01
        相关资源
        最近更新 更多