Discussion:
rutas relativas
(demasiado antiguo para responder)
Rubén Tejada
2004-11-28 21:03:04 UTC
Permalink
Estoy usando el IDE NetBeans 3.6 y no le da la gana cogerme las rutas
relativas!!!

por ejemplo c:\Codigo\programa\main.java (tb el .class)
y una imagen c:\Codigo\programa\imagen\img.gif.

no me coge :
ImageIcon img;
img= new ImageIcon ("/imagen/img.gif");
img=new ImageIcon ("imagen/img.gif");
img=new ImageIcon ("./imagen/img.gif");

o lo mismo con Files.File;

File f=new File("imagen/img.gif");
File f=new File("/imagen/img.gif");
File f=new File("./imagen/img.gif");


y sin embargo si me coge lo mismo pero con la ruta absoluta
File f=new File("c:/codigo/programa/imagen/img.gif");

¿no aceptan esos metodos rutas relativas? estoy harto de verlo en tutoriales
y ejemplos.

ahh, no me da ningun tipo de error de ningun tipo. simplemente si hago
f.canRead() me devuelve false con la ruta relativa, true con la ruta
absoluta y en el caso de las Imagenes en jLabels... no me las muestra.



//codigo procedimiento que pone una imagen en un jLabel;

void ponImg(int a){
String file="C:/Codigo/ahorcado/imagen/"; //si pongo la ruta
relativa no le da la gana coger la imagen;

switch (a){
case 0: file=file + "aho1.gif";break;
case 1: file=file + "aho2.gif";break;
case 2: file=file + "aho3.gif";break;
case 3: file=file + "aho4.gif";break;
case 4: file=file + "aho5.gif";break;
case 5: file=file + "aho6.gif";break;
case 6: file=file + "aho7.gif";break;

}


jLabel2.setIcon(new ImageIcon(file)) ;


}

¿alguna sugerencia? ¿es por el netbeans? ¿tengo que decirle algo de class
path?

Gracias
Rubén Tejada
2004-11-28 21:35:07 UTC
Permalink
Harto de buscar, y justo despues de postear creo que he visto la luz;
el procedimiento "resuelto":

el getClass().getResource("ruta relativa"); paice q va

void ponImg(int a){
//String file="C:/Codigo/ahorcado/imagen/";
String file="imagen/";
switch (a){
case 0: file=file + "aho1.gif";break;
case 1: file=file + "aho2.gif";break;
case 2: file=file + "aho3.gif";break;
case 3: file=file + "aho4.gif";break;
case 4: file=file + "aho5.gif";break;
case 5: file=file + "aho6.gif";break;
case 6: file=file + "aho7.gif";break;

}


jLabel2.setIcon(new ImageIcon(getClass().getResource(file)));


}


// para los ficheros:
String file="archivo.ext";
String path=getClass().getResource().getPath();
Post by Rubén Tejada
Estoy usando el IDE NetBeans 3.6 y no le da la gana cogerme las rutas
relativas!!!
por ejemplo c:\Codigo\programa\main.java (tb el .class)
y una imagen c:\Codigo\programa\imagen\img.gif.
ImageIcon img;
img= new ImageIcon ("/imagen/img.gif");
img=new ImageIcon ("imagen/img.gif");
img=new ImageIcon ("./imagen/img.gif");
o lo mismo con Files.File;
File f=new File("imagen/img.gif");
File f=new File("/imagen/img.gif");
File f=new File("./imagen/img.gif");
y sin embargo si me coge lo mismo pero con la ruta absoluta
File f=new File("c:/codigo/programa/imagen/img.gif");
¿no aceptan esos metodos rutas relativas? estoy harto de verlo en
tutoriales y ejemplos.
ahh, no me da ningun tipo de error de ningun tipo. simplemente si hago
f.canRead() me devuelve false con la ruta relativa, true con la ruta
absoluta y en el caso de las Imagenes en jLabels... no me las muestra.
//codigo procedimiento que pone una imagen en un jLabel;
void ponImg(int a){
String file="C:/Codigo/ahorcado/imagen/"; //si pongo la ruta
relativa no le da la gana coger la imagen;
switch (a){
case 0: file=file + "aho1.gif";break;
case 1: file=file + "aho2.gif";break;
case 2: file=file + "aho3.gif";break;
case 3: file=file + "aho4.gif";break;
case 4: file=file + "aho5.gif";break;
case 5: file=file + "aho6.gif";break;
case 6: file=file + "aho7.gif";break;
}
jLabel2.setIcon(new ImageIcon(file)) ;
}
¿alguna sugerencia? ¿es por el netbeans? ¿tengo que decirle algo de class
path?
Gracias
garcia
2004-12-01 14:59:11 UTC
Permalink
Post by Rubén Tejada
Harto de buscar, y justo despues de postear creo que he visto la luz;
el getClass().getResource("ruta relativa"); paice q va
Claro, tío, cuando pongas una ruta relativa, te la hará relativa al
directorio de trabajo actual de la aplicación.

En el caso de getResource, te busca en el classpath.

Saludos,
Tito
Rubén Tejada
2004-12-01 21:45:21 UTC
Permalink
Eso creia yo... pero no me coge las puñ... rutas relativas y creo que es
cosa del Netbeans.

Aun me sigo peleando, pero menos. Gracias de todos modos
Post by garcia
Post by Rubén Tejada
Harto de buscar, y justo despues de postear creo que he visto la luz;
el getClass().getResource("ruta relativa"); paice q va
Claro, tío, cuando pongas una ruta relativa, te la hará relativa al
directorio de trabajo actual de la aplicación.
En el caso de getResource, te busca en el classpath.
Saludos,
Tito
Loading...