JTree上的自定义图标

Gia*_*nis 2 java icons swing

我有两个问题的图标.

我使用ImageIcons作为JTree上的默认图标.正如教程所建议的那样,我使用这种方法加载图标:

protected ImageIcon createImageIcon(String path) {

        java.net.URL imgURL = getClass().getResource(path);
        if (imgURL != null) {
            return new ImageIcon(imgURL);
        } else {
            System.err.println("Couldn't find file: " + path);
            return null;
        }
}
Run Code Online (Sandbox Code Playgroud)

虽然为了实现这一点,我必须使用我认为很乱的源代码将图像存储在文件中(但我阅读了运行.jar所需的内容).有没有办法在项目文件夹而不是src上加载图像?

还有一种方法可以自动缩放正确大小的图像以便在JTree上显示吗?谢谢 !

JB *_*zet 5

代码不会从src文件夹加载ImageIcon .它从运行时类路径加载它.对于要在运行时类路径中的图像,最简单的方法是将它们放在src文件夹中,以便IDE自动将它们与.class文件一起复制到目标文件夹.

如果需要,可以resources在项目中定义另一个源目录(例如,命名),IDE还会将此源目录的文件复制到目标文件夹.这允许将Java文件与资源文件分开.