pregunta sobre ruta (relativa o absoluta)

rober
03 de Abril del 2006
Hola estoy poniendo iconos a los botones, etiquetas.......de mi aplicación.Bien eso ya esta, pero me ha surgido una duda.Supongamos que el siguiete codigo

ImageIcon icono = new ImageIcon("C:/WINDOWS/Web/tips.gif");

bien el archivo esta en esa ruta, pero lo que yo quiero es tener todos mis iconos en la carpeta imagenes, que este dentro de mi proyecto.Lo que quiero es lo siguiente

ImageIcon icono = new ImageIcon("imagenes/tips.gif");

poner esta ruta, bieny ahora me pregunto yo al no poner el camino absoluto c:....... sino el relativo, sobre que directorio me lo esta abriendo imagenes.

Yo tengo los. class en mis clases, los.java en mis fuentes, el proyecto en mi proyecto.

Donde meto la carpeta imagenes?????? porque he probado en todos lados y no me reconoce las imagenes.



gracias por leer todo esto

neossoftware
03 de Abril del 2006
Es muy comun tener este tipo de problemas, yo me hize una funcioncita para poder obtener las imagenes desde luna ruta relativa, que es lo que mas te conviene.

Esta es la funcion:

protected static ImageIcon createImageIcon(String path,
String description) {

//FrmLogin es el nombre de la clase

java.net.URL imgURL = FrmLogin.class.getResource(path);
System.out.println("Path:" + imgURL.getPath());
if (imgURL != null) {
return new ImageIcon(imgURL, description);
} else {
System.err.println("Couldn't find file: " + path);
return null;
}
}

//y asi la invocas!!!! FACIL o NO????
ImageIcon iconEntrar = createImageIcon("blue_arrow.gif", "Convert temperature");


Asi de facil quedaría resuelto tu problema con rutas relativas para obtener las imagenes, ya que tu proyecto lo podrias distribuir en jar y no tengan problemas los usuarios al ejecutar tu sistema.

Saludos comunidad Open Source!!!!!

xscorpio
03 de Abril del 2006
hola casi siempre las imagenes se encuentran en una ruta relativa a los .class
por ejemplo si tus .class estan en la carpeta classes, quizá puedas poner tus imagenes ahi mismo quedándote asi tu directorio: clases/images
asi cuando llames una imagen y no tengas problemas debes cargar la ruta relativa asi:

ImageIcon = new ImageIcon( getClass().getResource( images/miImagen.gif ) );

con esto aunque empaquetes tus clases debe poder seguir cargando las imagenes y no tener problemas

rober
03 de Abril del 2006
ok he hecho lo que me has dicho y funciona perfectamente, pero ala hora de crear el .jar no me incluia la carpeta imagenes, asiq se la he tenido que meter yo directamente al .jar.
¿Como puedo hacer el .jar para que me coja las images y no se las tenga que meter yo?