如何从Java中的资源加载图标?

7 java swing

可能重复(已解决):https://stackoverflow.com/a/1133132/783469

我的应用程序有图标(jpg,png),它存储在我的目录中/var/tmp/gameXbox/src/image/<here>.现在,我如何在应用程序中使用它们,而不使用硬链接作为资源?

示例:不工作

IconForMyButton = ImageIO.read(new File(
                    ClassLoader.getSystemResourceAsStream("image/button1.png")
                  ));
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

当我使用硬链接时工作:

IconForMyButton = ImageIO.read(new File(
                      "/var/tmp/gameXbox/src/image/button1.png"
                  ));
Run Code Online (Sandbox Code Playgroud)

Dar*_*ogg 13

资源加载发生在类路径中,相对于当前包.如果/var/tmp/gameXbox/src/在你的类路径中,那么:

ImageIO.read( ClassLoader.getSystemResource( "image/button1.png" ) );
Run Code Online (Sandbox Code Playgroud)

但是,IDE 通常不会在类路径中包含该src文件夹.尝试将图像添加到文件夹中.bin


ale*_*oot 6

我通常使用class.getResource进行这种操作:

YourClass.class.getResource("image/button1.png")
Run Code Online (Sandbox Code Playgroud)

我用它从jar档案中检索文件,但也应该从文件系统资源中检索。