【问题标题】:Applet cannot seem to find resources小程序似乎找不到资源
【发布时间】:2016-02-21 20:31:43
【问题描述】:

有一个类似的问题 (Java Applet Cannot Locate Resources),但base 给我一个错误,并要求我创建一个变量。


我有一个嵌入 HTML 的小程序:

<object type="application/x-java-applet" height="600" width="800">
<param name="code" value="net.me.applet.WindowMain" />
</object>

小程序启动,尝试更改内容窗格的颜色也可以,这意味着与 HTML 的链接可能没有错误。

然后,我像这样链接我的资产:

ImageIcon left = new ImageIcon(getCodeBase(), "Arrow_Left.png");

PNG 与我的小程序位于同一目录中。图片没有显示,所以我假设没有找到资产。我也尝试过"/Arrow_Left.png",但无济于事。

目录结构是这样的:

/ root directory
index.html
(dir)net
     | me
         | applet
               | WindowMain.class

当我在 Eclipse 中开发小程序时,我用编译单元制作了一个包,并在 src 文件夹中创建了一个名为“assets”的文件夹,我使用ImageIcon("src/assets/Arrow_Left.png")访问了这些用于测试目的

【问题讨论】:

  • 你不应该使用 src 访问资源,因为它不会在运行时存在
  • “PNG 和我的小程序在同一个目录” 就是和你的 index.html 文件或者你的类文件(在包里)在同一个目录
  • @MadProgrammer 我在根目录下有我的index.html,然后有一系列目录作为包,所以从根目录:net > me > applet > WindowMain.class。我将 PNG 放在与 WindowMain.class 相同的目录中
  • 您还应该注意,小程序实际上已被弃用,因为不再支持该插件(并且被大多数浏览器有效阻止)
  • 使用 getClass().getResource("Arrow_Left.png") 代替

标签: java applet


【解决方案1】:

我将 PNG 放在与 WindowMain.class 相同的目录中

那么字符串需要是代码库的相对路径。比如:

ImageIcon left = new ImageIcon(getCodeBase(), "net/me/applet/Arrow_Left.png");

但一定要注意使用ImageIO.read(..) 的建议,它可以提供更好的反馈。

【讨论】:

  • 我认为这是一个位置问题,因为我做了一个标签来测试它也不存在
猜你喜欢
  • 2016-04-30
  • 2011-05-01
  • 2012-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-17
  • 1970-01-01
  • 2015-01-21
相关资源
最近更新 更多