lunes, 23 de marzo de 2009

Ventana de selección de archivos en Java

La clase JFileChooser (Requiere importar javax.swing.JFileChooser) permite abrir una ventana de diálogo en la que el usuario pueda seleccionar un archivo para realizar una acción sobre él (por ejemplo, abrirlo).

        //Crear un objeto FileChooser
        JFileChooser fc = new JFileChooser();
        //Mostrar la ventana para abrir archivo y recoger la respuesta
        //En el parámetro del showOpenDialog se indica la ventana
        //  al que estará asociado. Con el valor this se asocia a la
        //  ventana que la abre.
        int respuesta = fc.showOpenDialog(this);
        //Comprobar si se ha pulsado Aceptar
        if (respuesta == JFileChooser.APPROVE_OPTION)
        {
            //Crear un objeto File con el archivo elegido
            File archivoElegido = fc.getSelectedFile();
            //Mostrar el nombre del archvivo en un campo de texto
            txtNombre.setText(archivoElegido.getName());
        }

Si en vez de utilizar la ventana de diálogo para abrir un archivo se desea utilizar la ventana para guardar un archivo se debe utilizar el método showSaveDialog en vez de showOpenDialog.

         int respuesta = fc.showSaveDialog(this);

Para seleccionar directorios en vez de archivos hay que utilizar el siguiente método antes de llamar a ShowOpenDialog o ShowSaveDialog:

        fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

Es posible modificar el directorio que se muestra al abrir la ventana utilizando el método setCurrentDirectory al que se le debe pasar por parámetro un objeto File con la ruta del directorio.

        //Cambiar al direcrio Windows
        fc.setCurrentDirectory(new File("c:/windows/"));
        //O bien usando dos barras invertidas
        fc.setCurrentDirectory(new File("c:\\windows\\"));

6 comentarios:

  1. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  2. ola, y como seria para obtener el directorio completo de un archivo.

    ResponderEliminar
    Respuestas
    1. Este comentario ha sido eliminado por el autor.

      Eliminar
    2. Para obtener la ruta tendrías ejecutar la función getPath() al "archivoElegido" y si lo quieres imprimir primero tendrías que pasarlo a un string de esta manera:
      String ruta = archivoElegido.getPath();
      Todo tuyo

      Eliminar
  3. ola que tal necesito esto mismo pero para una aplicacion Java web alguna idea???

    ResponderEliminar
  4. hola, disculpen no se podra hacer pero la ventana coloreada la que me muestra a mi las carpetas estan en grises

    ResponderEliminar

 

Contador de visitas