0

我正在使用 Eclipse 开发 Java 程序。现在,我有一个 src 文件夹,其中包含 2 个包:memory.views 和 memory.resources。

在 memory.views 包中,我有我的Main.java文件。在 memory.resources 包中,我有我的 .txt 文件和 .gif 文件。

.txt在程序中,我通过使用路径访问(和操作)文件没有问题/memory/resources/name.txt。但是,当我.gif使用下面的代码对文件执行相同操作时,我没有得到任何结果:

ImageIcon icon = new ImageIcon("/memory/resources/name.gif");

没有产生错误。唯一的影响是程序运行时我看不到图像。

我也尝试过编写以下内容,但没有一个有效:

ImageIcon icon = new ImageIcon("/resources/name.gif"); <br>
ImageIcon icon = new ImageIcon("name.gif");

现在,没有人说这是.gif文件的错,我实际上已经输入了完整的 Finder 路径(我使用的是 Mac)并且效果很好:

ImageIcon icon = new ImageIcon("/Users/[...]/src/memory/resources/name.gif");

但是,我不想做完整路径,因为如果我导出程序并在另一台计算机上运行它,那么非编程计算机也不会显示图像。

所以,现在,我什至不知道问题是什么。.gif 文件有时有效,但在通过与 .txt 文件相同的路径访问时无效,该文件始终有效。我尝试在这里查看(无法使用 getResources() 方法访问资源),但他的问题似乎与我略有不同。

4

3 回答 3

0

这个 ImageIcon 类是什么?是你自己的代码吗?

尝试Thread.currentThread().getContextClassLoader().getResourceAsStream("/memory/resources/name.gif");

于 2013-04-26T09:21:46.447 回答
0

看看这是否有效...

File file = new File("/memory/resources/name.gif");
ImageIcon icon = new ImageIcon(file.getAbsolutePath());

于 2013-04-26T09:31:22.017 回答
0

您可以使用

URL url = ClassLoader.getSystemResource("name.gif");
ImageIcon icon = new ImageIcon(url);

前提是您的name.gif文件在编译/构建后最终位于类路径中。

于 2013-04-26T09:17:36.940 回答