A diferencia del anterior, aunque ambos nos permiten manipular ventanas definidas, el JFileChooser encierra un poquito mas de complejidad, pues en este caso trabajamos con archivos (no se requiere mucho conocimiento sobre archivos ya que el ejemplo es muy diciente, sin embargo mas adelante dedicaremos un espacio a el manejo de Archivos con Java...).
Que Es?
La Clase JFileChooser, nos presenta una ventana de herramientas, que dependiendo de nuestra lógica, nos permitirá Abrir o Guardar archivos, igual que la JColorChooser, la ventana es una ventana de Dialogo para navegar por nuestros directorios...El Ejemplo.
Este es otro de esos ejemplos básicos y fáciles de entender, en si el componente que estamos trabajando habla por si solo...... usaremos una ventana JFrame con un JTextArea y dos JButtons.
La aplicación nos permitirá Abrir o Guardar un archivo de texto dependiendo del botón que presionemos, veamos los métodos que nos permiten esté procedimiento (Se crea el objeto en cada método por motivos del ejemplo, pero lo ideal es que el objeto sea global para trabajar con el mismo...).
Abrir Archivos.
Si definimos Abrir, entonces se cargará la ventana con lo necesario para navegar por nuestros directorios y seleccionar el archivo que queremos abrir (el trabajo con tipos de archivos lo veremos en una próxima entrada)
La Clase JFileChooser nos permite cargar la ventana anterior usando su método showOpenDialog(this), cuando seleccionamos el archivo deseado, lo agregamos a un objeto de tipo File por medio del método getSelectedFile(), posteriormente recorremos el archivo y lo almacenamos en un String...
private String abrirArchivo() {
String aux="";
texto="";
try
{
/**llamamos el metodo que permite cargar la ventana*/
JFileChooser file=new JFileChooser();
file.showOpenDialog(this);
/**abrimos el archivo seleccionado*/
File abre=file.getSelectedFile();
/**recorremos el archivo, lo leemos para plasmarlo
*en el area de texto*/
if(abre!=null)
{
FileReader archivos=new FileReader(abre);
BufferedReader lee=new BufferedReader(archivos);
while((aux=lee.readLine())!=null)
{
texto+= aux+ "\n";
}
lee.close();
}
}
catch(IOException ex)
{
JOptionPane.showMessageDialog(null,ex+"" +
"\nNo se ha encontrado el archivo",
"ADVERTENCIA!!!",JOptionPane.WARNING_MESSAGE);
}
return texto;//El texto se almacena en el JTextArea
}
Por ultimo retornamos la cadena con el contenido de nuestro archivo y luego se almacena en el área de texto usando su propiedad setText(texto), en caso de cualquier excepción, usamos los bloques try - catch para manejarlo....
Guardar Archivo.
Si definimos Guardar, igual que el anterior, se cargará una ventana para navegar por nuestros directorios y definir la ruta donde será almacenado.
De la misma forma, la lógica para navegar por nuestro PC biene definida gracias al metodo showSaveDialog(this) de la clase JFileChooser, que nos permite cargar la ventana de dialogo y encontrar la ruta donde almacenaremos el archivo.....
private void guardarArchivo() {
try
{
String nombre="";
JFileChooser file=new JFileChooser();
file.showSaveDialog(this);
File guarda =file.getSelectedFile();
if(guarda !=null)
{
/*guardamos el archivo y le damos el formato directamente,
* si queremos que se guarde en formato doc lo definimos como .doc*/
FileWriter save=new FileWriter(guarda+".txt");
save.write(areaDeTexto.getText());
save.close();
JOptionPane.showMessageDialog(null,
"El archivo se a guardado Exitosamente",
"Información",JOptionPane.INFORMATION_MESSAGE);
}
}
catch(IOException ex)
{
JOptionPane.showMessageDialog(null,
"Su archivo no se ha guardado",
"Advertencia",JOptionPane.WARNING_MESSAGE);
}
}
}
Internamente le definimos la extensión que vamos a manejar y tan solo es cuestión de dar un nombre y listo, el sistema guarda el contenido del área de texto en un objeto de tipo FileWriter y posteriormente el archivo en la ruta especificada....
Y Listo!!!!
Llegamos al final del ejemplo y al final de esta entrada, vemos que los métodos anteriores engloban todo lo necesario para utilizar la clase JFileChooser, y aunque no sepamos de archivos, es una muy buena oportunidad para aprender...
Descarga!!!
Les dejo el enlace de descarga por si lo quieren revisar ;)..... recuerden que es gratis, y nada cuesta opinar, compartir o agradecer :)
También te podría Interesar.
- Ejemplo JTree.
- Ejemplo JColorChooser
- Ejemplo Jtable
- Control de Versiones con Tortoise.
- ¿Eclipse Vs Netbeans?
- Componentes de Texto Java Swing
- Menús Con Java Swing.
- Clases en Java
- Clases Abstractas
¿Hay algo que quieras anexar o comentar sobre esta entrada? no dudes en hacerlo.....y si te gustó...... te invito a compartir y Suscribirte ingresando al botón "Participar en este sitio" para darte cuenta de mas entradas como esta ;)