2016-03-25 11 views
0

Ich habe Probleme mit dem relativen Pfad zu meinem arrow.png.Problem beim Laden des relativen Pfades des Bildes in javafx

Ich habe folgende eingerichtet von Verzeichnissen:

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

Und in meinem Main.java Ich versuche Bild wie folgt zu laden:

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

Allerdings ist mir die folgende Fehlermeldung erhalten:

Was ist überraschend, als ein paar Zeilen darüber, ich lade eine andere Datei wie folgt:

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

Und es funktioniert ..

Wo mache ich Fehler?

+0

Was ist das Paket von Image? Sehen Sie sich den Quellcode an, um zu sehen, was mit diesem Konstruktor passiert –

+0

import javafx.scene.image.Image; – uksz

+0

haben Sie versucht mit Image image = new Image (getClass(). GetResourceAsStream ("resources/arrow.png")); ? –

Antwort

3

einfach diesen Code ersetzen:

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

mit diesem

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

+0

Dies ist noch die einfache Antwort. Vielen Dank! – uksz

2

Versuchen mit:

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

das wirft tatsächlich: Fehler: (183, 47) Java: kein passender Konstruktor für Image gefunden (java.net.URL) Konstruktor javafx.scene.image.Image.Image (java.lang.String) ist nicht anwendbar (Argument nicht übereinstimmend; java.net.URL kann nicht in java.lang.String konvertiert werden) Konstruktor javafx.scene.image.Image.Image (java.io.InputStream) ist nicht anwendbar (Argument stimmt nicht überein; java.net.URL kann nicht konvertiert in java.io.InputStream) – uksz

+0

versuche dieses Bild image = neues Bild (getClass(). getResourceAsStream ("resources/arrow.png")); –

0

Sie können auch ImageIO verwenden, ich persönlich denke, es ist einfacher zu bedienen:

img = ImageIO.read(new File("resources/arrow.png")); 
Verwandte Themen