2016-03-25 5 views
0

У меня есть относительный путь к моему arrow.png.Ошибка загрузки относительного пути изображения в javafx

У меня есть следующие настройки каталогов:

--resources 
    --arrow.png 
    --Accounts.txt 
--src 
    --Main.java 

И в моем Main.java Я пытаюсь загрузить изображение, как это:

Image image = new Image("resources/arrow.png"); 

Однако, я получаю следующее сообщение об ошибке:

Invalid URL: Invalid URL or resource not found 

Что вызывает удивление, так как пара строк над ним, я загружаю другой файл следующим образом:

FileInputStream fstream = new FileInputStream("resources/Accounts.txt"); 

И это работает ..

Где я делаю ошибку?

+0

какой пакет изображения? Просто посмотрите исходный код, чтобы узнать, что произойдет с этим конструктором. –

+0

import javafx.scene.image.Image; – uksz

+0

Вы попробовали Image Image = new Image (getClass(). GetResourceAsStream ("resources/arrow.png")); ? –

ответ

3

Просто замените этот код:

Image image = new Image("resources/arrow.png");

с этим

Image img = new Image("file:resources/arrow.png");

+0

Это еще простой ответ. Благодаря! – uksz

2

Try с:

Image image = new Image(this.getClass().getResource("resources/arrow.png")); 
+0

это фактически выбрасывает: Ошибка: (183, 47) java: не найдено подходящего конструктора для Image (java.net.URL) Конструктор javafx.scene.image.Image.Image (java.lang.String) не применим (аргумент несоответствие; java.net.URL не может быть преобразован в java.lang.String) конструктор javafx.scene.image.Image.Image (java.io.InputStream) не применим (несоответствие аргументов; java.net.URL не может преобразуется в java.io.InputStream) – uksz

+0

попробуйте это изображение image = new Image (getClass(). getResourceAsStream ("resources/arrow.png")); –

0

Вы также можете использовать ImageIO, лично я считаю, что проще использовать:

img = ImageIO.read(new File("resources/arrow.png")); 
Смежные вопросы