【发布时间】:2015-08-29 21:07:13
【问题描述】:
我正在开发一个显示大量图像的 Java 应用程序。问题是我不知道如何让 Java 找到这些图像。
我在 * 上遵循了几个教程和答案,但我仍然没有设法找到一个无论操作系统(Linux 或 Windows)和运行方法(嵌入在 eclipse 上还是导出的 jar 文件)都有效的解决方案。不过,这可能是因为我还是个新手。
我创建了一个类,我称之为 myIcon,我的意思是通过这个类访问所有这些图像。在下面的代码中,我想将字符串“resources/icon/image.gif”传递给函数 getIconPath。输出应该是该图像的 ImageIcon,因为该文件存在。尽管如此,如果我将不存在的图像的路径传递给此函数,则应返回 null。在这种情况下,我的应用程序将显示默认图像(红色 x)。
public class MyIcon {
// some other functions and properties
private static final ImageIcon getIconPath(String path) {
File f = new File(path);
if (f.exists()) {
return new ImageIcon(path, "");
} else {
return null;
}
}
}
资源文件夹是我的目录结构中的 src 文件夹的同级文件夹。也就是说,resources 和 src 都是根目录的子文件夹。
当我运行上面的代码时,没有找到任何图像。因此始终显示默认图像并且 getIconPath 返回 null。
我也知道ClassLoader的getResource方法,但是我还是不太明白这些东西应该怎么用。
【问题讨论】:
-
我相信您需要从系统根目录(例如 C:/)传入一个路径,而不是相对于您的项目根目录的路径。