Estoy intentando cargar una imagen para utilizarla como icono en mi aplicación. El método apropiado de acuerdo con esta tutorial es:Cargando recursos usando getClass(). GetResource()
protected ImageIcon createImageIcon(String path, String description)
{
java.net.URL imgURL = getClass().getResource(path);
if (imgURL != null) {
return new ImageIcon(imgURL, description);
} else {
System.err.println("Couldn't find file: " + path);
return null;
}
}
Por lo tanto, coloca la ubicación del archivo, y se pasa como parámetro a esta función. Esto no funcionó, es decir, imgURL fue nulo. Cuando traté de crear ImageIcon al pasar en la ruta explícitamente:
ImageIcon icon = new ImageIcon(path,"My Icon Image");
Funcionó muy bien! Entonces, la aplicación puede recoger la imagen desde una ruta explícitamente definida, pero no recogió la imagen usando getResources(). En ambos casos, el valor de la variable de ruta es el mismo. ¿Por qué no funcionaría? ¿Cómo se encuentran los recursos del cargador de clases?
Gracias.
¿Estás usando un IDE? ¿El IDE está configurado para copiar recursos en cualquier lugar donde se compilen las clases? – z5h
¿Dónde se encuentra la imagen relativa a la clase y a la raíz del proyecto? – willcodejavaforfood
Sí, estoy usando Eclipse, y no estaba configurado para copiar recursos. Han arreglado eso. La clase se encuentra en la raíz/bin//MyClass y las imágenes se encuentran en la raíz/resources/images/myImage.gif Gracias por sus respuestas. –
Luhar