我正在开发一个显示大量图像的Java应用程序。问题是我不知道如何使Java查找这些图像。

我在Stackoverflow上关注了一些教程和答案,但是我仍然没有找到一种无论OS(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;
        }
    }
}


resources文件夹是我目录结构中src文件夹的同级文件。也就是说,资源和src都是根目录的子文件夹。

当我运行上面的代码时,找不到任何图像。因此,始终显示默认图像,并且getIconPath返回null。

我也知道ClassLoader的getResource方法,但我仍然不太了解如何使用这些东西。

最佳答案

在Eclipse中运行时,应打印出f.getAbsolutePath()。它可能没有指向您的文件。通常,您希望将文件作为资源访问。看到:

https://docs.oracle.com/javase/tutorial/deployment/webstart/retrievingResources.html

08-06 02:30