Buscar y Abrir Archivos (JFileChooser - Java)
En ocasiones requerimos que el usuario de la aplicación busque y abra un archivo que se encuentra en su pc, para este caso tenemos el cuadro de dialogo JFileChooser de la API de Java, el mismo muestra un cuadro de búsqueda donde se puede buscar y seleccionar el o los archivos deseados de manera cómoda para el usuario y para el programador de la aplicación.
Primero creamos una GUI en una aplicación java simplemente añadiremos un botón para iniciar el cuadro de búsqueda jfilechooser, una etiqueta para mostrar el archivo que abrimos y una caja de texto multi-línea para mostrar el contenido del archivo.
Seguido vamos a establecer la acción del botón abrir, en la vista diseño damos clic derecho sobre el botón, seleccionamos la opción Events > Action > actionPerformed vamos al código generado para manejar el evento.
Escribimos el código para crear y abrir el JFileChooser, prestemos atención a JFileChooser.FILES_AND_DIRECTORIES, este indica que deseamos abrir tanto archivos como carpetas, usaremos FILES_ONLY para solamente abrir archivos y DIRECTORIES_ONLY para carpetas, showOpenDialog muestra el cuadro de búsqueda y nos indica atreves de su valor devuelto que ha hecho el usuario, por ejemplo si cancelo la selección.
// muestra el cuadro de diálogo de archivos, para que el usuario pueda elegir el archivo a abrir JFileChooser selectorArchivos = new JFileChooser(); selectorArchivos.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); // indica cual fue la accion de usuario sobre el jfilechooser int resultado = selectorArchivos.showOpenDialog(this);
Comprobamos que el usuario no ha cancelado, obtenemos el objeto File que representa el archivo seleccionado por el usuario, verificamos que se haya seleccionado un archivo valido, luego leemos el contenido y lo mostramos en la caja de texto.
File archivo = selectorArchivos.getSelectedFile(); // obtiene el archivo seleccionado // muestra error si es inválido if ((archivo == null) || (archivo.getName().equals(""))) { JOptionPane.showMessageDialog(this, "Nombre de archivo inválido", "Nombre de archivo inválido", JOptionPane.ERROR_MESSAGE); } // fin de if jlArchivo.setText(archivo.getAbsolutePath()); Scanner scn = new Scanner(archivo); while (scn.hasNext()) { jtaContenido.insert(scn.nextLine() + "\n", jtaContenido.getText().length()); }
Nuestro cuadro de búsqueda muestra todos los archivos disponibles, pero podemos indicarle que solo deseamos localizar un tipo especifico de archivos, para indicarle que solo deseamos abrir archivos .java usamos la clase FileNameExtensionFilter en su constructor indicamos la descripción del tipo de archivo que abriremos y la extensión del mismo.
FileNameExtensionFilter filtro = new FileNameExtensionFilter("Archivos Java", "java"); selectorArchivos.setFileFilter(filtro);
Otra de las modificaciones que podemos hacer es indicar el tipo de JFileChooser pues este se puede usar tanto para abrir como para guardar un archivo, en el ultimo caso nos selectorArchivos nos devolvería la ruta donde deseamos almacenar el archivo, para cambiar el tipo usamos: selectorArchivos.setDialogType(JFileChooser.OPEN_DIALOG); para abrir SAVE_DIALOG para guardar, CUSTOM_DIALOG para uno personalizado.
como hago para abrir una carpeta con un boton
ResponderEliminar