user285594
user285594

Reputation:

How to load icon from resource in Java?

Possible duplication (solved): https://stackoverflow.com/a/1133132/783469

I have icons (jpg, png) for my application, which is stored in my directory /var/tmp/gameXbox/src/image/<here>. Now, How can i use them in application, without using hard link but as resource?

Example: not working

IconForMyButton = ImageIO.read(new File(
                    ClassLoader.getSystemResourceAsStream("image/button1.png")
                  ));

enter image description here

Works when i do with hard link:

IconForMyButton = ImageIO.read(new File(
                      "/var/tmp/gameXbox/src/image/button1.png"
                  ));

Upvotes: 11

Views: 48916

Answers (3)

Michael-O
Michael-O

Reputation: 18405

Images do not go into a source folder but into a resource folder. Fix your IDE and use Maven and it will work with getResourceAsStream with the current context classloader.

Upvotes: 0

aleroot
aleroot

Reputation: 72636

I usually use class.getResource for this kind of operation :

YourClass.class.getResource("image/button1.png")

i use it to retrieve the file from a jar archive but should work also to retrieve from filesystem resources.

Upvotes: 6

Darkhogg
Darkhogg

Reputation: 14165

Resource loading takes place in the classpath, relative to the current package. If /var/tmp/gameXbox/src/ is in your classpath, then:

ImageIO.read( ClassLoader.getSystemResource( "image/button1.png" ) );

However, usually the src folder is not included in the classpath by IDEs. Try adding the image to the bin folder.

Upvotes: 16

Related Questions