martes, 23 de febrero de 2016

015.- Uso de Cuadros de Diálogo Abrir y Guardar (JFileChooser) - Java y NetBeans

  
Explico en esta oportunidad el uso de Cuadros de diálogo Abrir y Guardar:

Las opciones Abrir y Guardar son opciones muy comunes en las aplicaciones. Estas opciones permiten buscar en el árbol de carpetas del sistema un fichero en concreto y abrirlo, o bien guardar una información dentro de un fichero en alguna carpeta.

Java proporciona una clase llamada JFileChooser (elegir fichero) que permite mostrar la ventana típica de Abrir o Guardar:

Ventana Abrir:



La ventana de Guardar es la misma, solo que muestra en su barra de título la palabra Guardar:



El objeto JFileChooser nos facilita solamente la labor de elegir el archivo, pero no realiza la apertura o la acción de guardar la información en él. Esto tendrá que ser programado.


En el siguiente ejercicio haremos uso de JFileChooser:

  1. Crea un nuevo proyecto.

  1. Dentro de Source Packages crea un Java Package y llamalo paqueteInicial.

  1. Dentro de paqueteInicial crea un JFrame Form y nombralo VentanaInicial.

  1. En la VentanaInicial agrega los siguientes elementos:

    1. Una barra de menús. Llámala barraMenus.
    2. Dentro de ella agregue un menú “Archivo” llamada mnuArchivo.
    3. Dentro del menú “Archivo”, introduce los siguientes elementos:
-        Una opción “Abrir”, nómbralo mnuItemAbrir.
-        Un separador (no es necesario cambiarle el nombre).
-        Una opción “Salir”, llámalo mnuItemSalir.


  1. Al ejecutar el proyecto el menú se verá así:



  1. Si observas el Inspector, tendrá un aspecto parecido al siguiente:



  1. Para que al pulsar la opción “Abrir” de nuestro programa aparezca el diálogo de apertura de ficheros, es necesario añadir a nuestro programa un objeto del tipo JFileChooser.

Los objetos JFileChooser se añadirán el la zona de “Otros Componentes” del inspector.


  1. Haz clic derecho sobre la zona de “otros componentes” y activa la opción Agregar Desde PaletaSwing WindowsFile Chooser:



  1. Aparecerá entonces un objeto JFileChooser dentro de Otros Componentes. Aprovecha para cambiarle el nombre a este objeto. Su nombre será elegirArchivo.

El inspector quedará así:



  1. Una vez hecho esto, ya podemos programar la opción Abrir del menú. Codifiquemos en el evento actionPerformed de la opción “Abrir” lo siguiente:

int botonElegido;

botonElegido = elegirArchivo.showOpenDialog(this);

if (botonElegido == JFileChooser.APPROVE_OPTION) {
JOptionPane.showMessageDialog(null, elegirArchivo.getSelectedFile().toString());
} else if (botonElegido == JFileChooser.CANCEL_OPTION) {
JOptionPane.showMessageDialog(null, "Ha elegido la opción Cancelar.");
}


  1. Ejecuta el proyecto y prueba la opción “Abrir” del menú. Prueba a elegir algún fichero y abrirlo. Prueba a cancelar la ventana de apertura. Etc..

  1. Explicación del código anterior:

int botonElegido;

botonElegido = elegirArchivo.showOpenDialog(this);

-        Estas dos líneas crean una variable entera botonElegido y a continuación hacen que se muestre la ventana “Abrir Fichero”. Observa que para conseguirlo hay que usar el método showOpenDialog del objeto elegirArchivo. Este método lleva como parámetro la ventana actual (this).

-        El método showOpenDialog no solamente muestra la ventana “Abrir Fichero” sino que también devuelve un valor entero según el botón pulsado por el usuario en esta ventana. Esto es: botón “Abrir” o botón “Calcelar”.

-        Se pueden usar dos if para controlar lo que sucede si el usuario pulsa el botón “Abrir” o el botón “Calcelar” de la ventana “Abrir Fichero”:

if (botonElegido == JFileChooser.APPROVE_OPTION) {
JOptionPane.showMessageDialog(null, elegirArchivo.getSelectedFile().toString());
} else if (botonElegido == JFileChooser.CANCEL_OPTION) {
JOptionPane.showMessageDialog(null, "Ha elegido la opción Cancelar.");
}


-        En el primer if se compara la variable botonElegido con la constante JFileChooser.APPROVE_OPTION, para saber si el usuario pulsó “Abrir”.

-        En el segundo if se compara la variable botonElegido con la constante JFileChooser.CANCEL_OPTION, para saber si el usuario pulsó “Calcelar”.

-        En el caso de que el usuario pulsara “Abrir”, el programa usa el método getSelectedFile del objeto elegirArchivo para recoger la ruta del archivo elegido. Esta ruta debe ser convertida a cadena con el método toString.

-        El programa aprovecha esto para mostrar dicha ruta en pantalla gracias al típico JOptionPane.

-        En el caso de que el usuario pulsara el botón “Cancelar” el programa muestra un mensaje indicándolo.


  1. Hay que dejar claro que el cuadro de diálogo “Abrir” realmente no abre ningún archivo, sino que devuelve la ruta del archivo elegido usando el código:

elegirArchivo.getSelectedFile().toString()

Quedando a criterio del programador el trabajar con el archivo elegido de la forma que necesite.



CONCLUSIÓN:

Los objetos JFileChooser permiten mostrar el cuadro de diálogo “Abrir Archivo” o “Guardar Archivo”.

Estos objetos no abren ni guardan archivos, solo permiten al usuario elegir el archivo a abrir o guardar.

El JFileChooser devuelve la ruta del archivo elegido, y luego el programador trabajará con dicho archivo según la necesidad de su proyecto.


No hay comentarios.:

Publicar un comentario