Foros del Web » Programación para mayores de 30 ;) » Java »

Ayuda con filtro para filechooser

Estas en el tema de Ayuda con filtro para filechooser en el foro de Java en Foros del Web. Tengo una aplicacion que abre una ventana de dialogo para seleccionar un fichero en formato .gif o .jpg El problema es que el filtro de ...
  #1 (permalink)  
Antiguo 14/01/2004, 21:45
 
Fecha de Ingreso: abril-2002
Ubicación: La Comarca
Mensajes: 192
Antigüedad: 22 años, 8 meses
Puntos: 0
Exclamación Ayuda con filtro para filechooser

Tengo una aplicacion que abre una ventana de dialogo para seleccionar un fichero en formato .gif o .jpg

El problema es que el filtro de ficheros del filechooser me selecciona todos los ficheros del directorio y yo necesito que se muestren solamente los comentados anteriormente.

Utilizo :

chooser = new JFileChooser();
chooser.addChoosableFileFilter(new ImageFilter());
chooser.setAcceptAllFileFilterUsed(false);

y declaro la class ImageFilter con las especificaciones indicadas en la pagina de sun y siguiendo sus ejemplos pero me da un error de declaracion en el ImageFilter (error 15, por si alguien iba a preguntar)

Agradeceria si alguien tiene realizado algun ejemplo con esto, lo comentara.

Es muy urgente tener la respuesta para el dia 15 por la tarde.

Gracias a todo el que me pueda ayudar.

Saludos.

Ideafix.
__________________
Aus Liebe zu einem Sterblichen muss Elronds Tochter Arwen Ihr elbisches Erbe aufgeben und für immer auf die Reise zu den unsterblichen Ländern verzichten.
  #2 (permalink)  
Antiguo 14/01/2004, 22:32
Avatar de goncafa  
Fecha de Ingreso: julio-2002
Ubicación: Santiago
Mensajes: 1.211
Antigüedad: 22 años, 6 meses
Puntos: 10
lo que debes hacer en esta ocacion es usar la clase abstracta FileFilter, es decir, debes extenderla, ella contiene el metodo accept que debes sobre escribir de tal forma que solo hacepte las .gif y las .jpg.

Saludos
__________________
se despide hasta la proxima
Gonzalo Castillo
  #3 (permalink)  
Antiguo 15/01/2004, 03:55
 
Fecha de Ingreso: abril-2002
Ubicación: La Comarca
Mensajes: 192
Antigüedad: 22 años, 8 meses
Puntos: 0
ye lo he probado

ya hice eso que me comentas y no me funciona:

public class ImageFilter extends FileFilter {

//Accept all directories and all gif, jpg, tiff, or png files.
public boolean accept(File f) {
if (f.isDirectory()) {
return true;
}

String extension = Utils.getExtension(f);
if (extension != null ) {
if (extension.equals(Utils.tiff) ||
extension.equals(Utils.tif) ||
extension.equals(Utils.gif) ||
extension.equals(Utils.jpeg) ||
extension.equals(Utils.jpg) ||
extension.equals(Utils.png)) {
return true ;
} else {
return false ;
}
}

return false;
}

//The description of this filter
public String getDescription() {
return "Just Images";
}
}
__________________
Aus Liebe zu einem Sterblichen muss Elronds Tochter Arwen Ihr elbisches Erbe aufgeben und für immer auf die Reise zu den unsterblichen Ländern verzichten.
  #4 (permalink)  
Antiguo 15/01/2004, 03:57
 
Fecha de Ingreso: abril-2002
Ubicación: La Comarca
Mensajes: 192
Antigüedad: 22 años, 8 meses
Puntos: 0
sigue

Y la public class utilizada ahi (Utils) contiene lo siguiente:

public class Utils {
public final static String jpeg = "jpeg";
public final static String jpg = "jpg";
public final static String gif = "gif";
public final static String tiff = "tiff";
public final static String tif = "tif";
public final static String png = "png";

/*
* Get the extension of a file.
*/
public static String getExtension(File f) {
String ext = null;
String s = f.getName();
int i = s.lastIndexOf('.');

if (i > 0 && i < s.length() - 1) {
ext = s.substring(i+1).toLowerCase();
}
return ext;
}

/** Returns an ImageIcon, or null if the path was invalid. */
protected static ImageIcon createImageIcon(String path) {
java.net.URL imgURL = Utils.class.getResource(path);
if (imgURL != null) {
return new ImageIcon(imgURL);
} else {
System.err.println("Couldn't find file: " + path);
return null;
}
}
}

Y no me funciona. Me puede alguien quizas ayudar con esto o arreglar el posible error? yo no soy capaz de encontrarlo.

Saludos y gracias.

Ideafix.
__________________
Aus Liebe zu einem Sterblichen muss Elronds Tochter Arwen Ihr elbisches Erbe aufgeben und für immer auf die Reise zu den unsterblichen Ländern verzichten.
  #5 (permalink)  
Antiguo 15/01/2004, 12:50
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 21 años, 2 meses
Puntos: 51
Hola Ideafix,
Lo primero es saber que tipo de error te da. Error 15... no me dice nada por que no recuerdo los codigos de memoria :), asi que.. ¿Que mensaje de error te da? ¿Te da error en ejecucion o en tiempo de compilacion?
Pasando a mirar la clase de Sun, por un lado decirte que si lo que quieres tu es un filtro para jpg y gif, el filtro que tienes te aceptará muchas mas cosas, incluyendo directorios.
Y por otro lado, menudo ejemplo de programación mas malo de Sun :). El metodo accept es de libro, pero de contra-ejemplo :).

Con algo como
...
chooser.addChoosableFileFilter(new FileFilter()
{
public boolean accept(File f)
{
boolean aceptar = false;
if (f!=null)
{
String nombre = f.getName().toLowerCase();
if(!f.isDirectory()
&&
( nombre.endsWith(".jpg")
|| nombre.endsWith(".gif")
)
)
{
aceptar = true;
}
}
return aceptar;
}
}
);
...
te debería bastar.

Nota: Ojo que lo he hecho de cabeza y sin compilar.
Suerte!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #6 (permalink)  
Antiguo 19/01/2004, 17:28
 
Fecha de Ingreso: abril-2002
Ubicación: La Comarca
Mensajes: 192
Antigüedad: 22 años, 8 meses
Puntos: 0
Indicando el error...

El error que me genera es el siguiente:

ImageFilter.java [15:1] cannot resolve symbol
symbol : method getExtension (java.io.File)
location: class ImageFilter.Utils
String extension = Utils.getExtension ;
^
1 error
Errors compiling ImageFilter.

el que me pueda ayudar se lo agradecere.

De mientras ire probando lo que me has dicho.

Gracias.

Ideafix.
__________________
Aus Liebe zu einem Sterblichen muss Elronds Tochter Arwen Ihr elbisches Erbe aufgeben und für immer auf die Reise zu den unsterblichen Ländern verzichten.
  #7 (permalink)  
Antiguo 21/01/2004, 11:47
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 21 años, 2 meses
Puntos: 51
Hola,
Bueno, ese es un error de compilacion y lo que te está diciendo es que no existe el metodo getExtension(File) en la clase ImageFilter.Utils, lo cual es ciertamente extraño por que el metodo parece estar implementado con ese nombre.

Estan las dos clases declaradas en un mismo fichero Java? Estan metidas en algun paquete? Cuales son los imports que tiene cada clase?

Así a bote pronto es dificil de decir, pero podria ser un problema de classpath (este usando una version antigua sin ese metodo) o que se haga un lio si las clases no tienen paquetes etc...

Suerte
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:04.