Blog de Maki

Un blog de conocimiento libre.

24 ago 2013

Cómo usar JFileChooser en Java

JFileChooser es una clase java que nos permite mostrar fácilmente una ventana para la selección de un fichero. Si queremos abrirlo para leer un fichero, podemos llamarlo así:
JFileChooser fileChooser = new JFileChooser();
int seleccion = fileChooser.showOpenDialog(null);
//Donde pone null es donde queréis que se abra la ventana.

La ventana de este JFileChooser sería así:
JFileChooser

Cuando seleccionemos una opción, en selección tendremos:
  1. JFileChooser.CANCEL_OPTION.Si el usuario le ha dado al botón cancelar.
  2. JFileChooser.APPROVE_OPTION.Si el usuario le ha dado al botón abrir.
  3. JFileCHooser.ERROR_OPTION.Si ha ocurrido algún error.
De esta forma comprobamos que se ha pulsado el botón abrir:
if (seleccion == JFileChooser.APROVE_OPTION)
{
   File fichero = fileChooser.getSelectedFile();
   //Acciones que se quieran realizar
}

Con el resto de opciones sería casi igual, lo único que habría que hacer es cambiar la condición del if.

Para seleccionar un fichero para guardar datos, el mecanismo es igual, salvo que hay que cambiar la opción showOpenDialog() por showSaveDailog. Con esto conseguimos que el botón abrir se llame guardar.
JFileChooser fileChooser = new JFileChooser();
int seleccion = fileChooser.showSaveDialog(null);
if (seleccion == JFileChooser.APPROVE_OPTION)
{
   File fichero = fileChooser.getSelectedFile();
   // Acciones
}

Si no queremos que se muestren todos los archivos de un directorio sino un tipo específico podemos añadir un filtro de la siguiente forma:
JFileChooser jf = new JFileChooser();
FileNameExtensionFilter filter = new FileNameExtensionFilter("JPG & GIF", "jpg", "gif");
jf.setFilter(filter);
Este ejemplo de filtro se usaría para filtrar archivos con extensión .jpg y .gif

3 comentarios:

  1. gracias por la info es una excelente base para usar un JFilechooser me sirvió de mucho !!!

    ResponderEliminar
  2. gracias por la info es una excelente base para usar un JFilechooser me sirvió de mucho !!!

    ResponderEliminar