Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Load image from a file inside a project folder

Tags:

java

javafx

I'm trying to load an image from a file without using a FileChooser. The folders are:

TestProject
-src
--application
---(all_the_classes_i'm_using.java)
-assets
--drawIcon.png

I want to load the image in the assets folder. I've tried:

Image image = new Image("../assets/drawIcon.png")
Image image = new Image(getClass().getResourceAsStream("../assets/drawIcon.png"))

I've tried it with the string path "/TestProject/assets/drawIcon.png", but nothing. I don't understand how to load this image!

like image 891
Astinog Avatar asked Apr 21 '15 18:04

Astinog


People also ask

How to load an image from resource folder in JavaFX?

Resources such as images and FXML files can be loaded into a JavaFX application using Java code by invoking the getClass(). getResource(String location) method, passing in the location of the resource.

How do I create a file in a project directory?

To create a fileIn the Project tool window, select the directory where you want to create a file, press Alt+Insert , and then select the desired language or file type. In the dialog that opens, type the name of the file without any extension.


2 Answers

Set the assets directory as a resource directory and then load the image as a resource from the location "/drawIcon.png":

URL url = getClass().getResource("/drawIcon.png");
Image image = ImageIO.read(url);

In case you want to create a javafx Image:

Image image = new Image("/drawIcon.png");

In this case, also, mark that folder as resource folder.

More info here: https://docs.oracle.com/javafx/2/api/javafx/scene/image/Image.html

like image 87
botismarius Avatar answered Oct 20 '22 13:10

botismarius


You can use getResource(path).toString(); the path must start with /, and it starts with the verry first package in your src folder.

Image img= new Image(getClass().getResource("/path/in/your/package/structure/icon.png").toString());

like image 39
Florin Virtej Avatar answered Oct 20 '22 15:10

Florin Virtej