Hola usuario de nuestra web, encontramos la respuesta a lo que estabas buscando, deslízate y la encontrarás un poco más abajo.
Solución:
Simplemente reemplace este código:
Image img = new Image("logo.png");
con este
Image img = new Image("file:logo.png");
Referencia del documento. https://docs.oracle.com/javase/8/javafx/api/javafx/scene/image/Image.html
cuando pasas un String
hacia Image
clase en la que se puede manejar cuatro maneras diferentes (copiado de documento):
// The image is located in default package of the classpath
Image image1 = new Image("/flower.png");
// The image is located in my.res package of the classpath
Image image2 = new Image("my/res/flower.png");
// The image is downloaded from the supplied URL through http protocol
Image image3 = new Image("http://sample.com/res/flower.png");
// The image is located in the current working directory
Image image4 = new Image("file:flower.png");
los file:
prefix es simplemente un esquema URI, o en otras palabras, la contraparte del http:
clasificador de protocolos. Esto también funciona en el navegador de archivos, o en el navegador web… 😉
Para obtener más información, puede consultar la página wiki del esquema URI del archivo: https://en.wikipedia.org/wiki/File_URI_scheme
Codificación feliz,
Kalasch
Prueba esto:
img = new Image("/logo.png");
Si no hay parte de protocolo que indique una URL (como http: o expediente:), se supone que el archivo reside en el paquete predeterminado. Si desea que se coloque en un paquete diferente, diga com.my.images, agregue esta información de una manera similar a la ruta:
img = new Image("/com/my/images/logo.png");
Image img = new Image("file:/logo.png");
o camino con camino:
Image img = new Image("file:c:/logo.png");
o
File f = new File("c:\logo.png");
Image img = new Image(f.toURI().toString());
también puede usar:
new Image(file:src/logo.png) //root of project