Nuevamente regreso con un ejemplo práctico sobre uno de los componentes Java Swing.............. el día de hoy les traigo el JFileChooser, este se encuentra en la categoría de componentes Complejos, ya que igual que el JColorChooser presenta una ventana con funciones ya definidas y lógica preestablecida....
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.
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...
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.
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.....
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...
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...
Les dejo el enlace de descarga por si lo quieren revisar ;)......si usas NetBeans te interesará esta entrada con un vídeo paso a paso de como abrirlo en el... 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 ;)
Excelente ejemplo, me gustaria hacerlo, pero usando el IDE Netbeans... Saludos y gracias.
ResponderEliminarGracias por comentar y claro, el lenguaje es el importante, en cualquier IDE podria hacerse, un saludo y gracias nuevamente ;)
EliminarGracias!!, 5 años más tarde y el artículo seguro que le sigue siendo útil a mucha gente, a mí por lo menos!!!
EliminarGracias, excelente ejemplo y explicado de forma clara y sencilla.
ResponderEliminarHola, muchas gracias, me alegra que entendieras
EliminarMe ayudo para un proyecto de sistemas operativos (Y)
ResponderEliminarHola, Me alegra mucho que te sirviera, gracias por comentar ;)
EliminarGracias amigo es genial tu aporte, voy a estar al penddiente de tu blog, tienes material muy util.
EliminarMuy buen ejemplo de la Clase, muchas gracias.
ResponderEliminarexcelente ejemplo..pero como le puedo hacer para filtar archivos,, es decir si quiero que solo sea vean .pdf,, etc
ResponderEliminarpues tendrías q revisar: String nombre = f.getName(); y buscar por cadenas(substring pdf), lo que necesites, actualmente solo muestra contenido de archivos de texto, si requieres verlo como visor de pdf y otro tipo de archivo seria otro proceso pero similar.
Eliminartarde pero seguro...
EliminarJFileChooser chooser = new JFileChooser();
FileNameExtensionFilter filter = new FileNameExtensionFilter(".sql","sql");
chooser.setFileFilter(filter);
en este caso se filtra para que aparezcan archivos .sql
Pa' que quiere saber eso?, jaja saludos!
EliminarExcelente... Gracias por el aporte!!!
ResponderEliminarHola muchas gracias, muy explicito. Me sirvió :)
ResponderEliminarMuy bueno..gracias!
ResponderEliminarBuen aporte, Gracias
ResponderEliminargracias!!!! excelente !!!!! genio!!!!
ResponderEliminarcomo puedo poner un mensaje el cual m diga que no puedo selecionar otro tipo de archivo que no sea archivos pdf ..!
ResponderEliminarpliz ..!!!
Con tu teclado!, saludos
EliminarCon un FileFilter, te dejo un ejemplo:
EliminarFileNameExtensionFilter PDFFilter = new FileNameExtensionFilter("*.pdf", "pdf");
FileChooser.setFileFilter(PDFFilter);
Excelente Tutorial, Gracias.
ResponderEliminarexcelente, fue COPY & PASTE !
ResponderEliminarhola como puedo hacer para que se guarde exactamente como se escribio, con espacio y saltos de linea, gracias
ResponderEliminarQuiero guardar un archivo con un nombre con numero consecutivo o autoincremento, ejemplo; "archivo0001.doc" "archivo0002.doc" etc.
ResponderEliminarno entendi nada
ResponderEliminarme sale error en esa mon....
Entonces pa que pregunta?!Saludos desde marte
EliminarHola excelente aporte una pregunta como puedo saber la extensión de un archivo seleccionado desde un jfilechooser saludos
ResponderEliminarMuchas gracias amigo, ya he entendido como usar mejor este método.
ResponderEliminarBuen explicació!
:)
gracias muy claro el ejemplo me sirvió para aclarar mis dudas
ResponderEliminarHola, quisiera saber como hago para cargar un archivo pdf de mi pc y luego este mismo enviarlo por javamail
ResponderEliminargracias muy util (Y) SALUDOS
ResponderEliminarMuy interesante aporte. No entendía como hacerlo hasta hoy. Gracias
ResponderEliminarExcelente ejemplo, pero una pregunta: como puedo hacer para que me aparezcan distintas opciones de guardado en la casilla "Archivos de tipo:"?
ResponderEliminarhola te hago una pregunta yo estoy estudiando con eclipae y en el ejemplo no esta el codigo main?
ResponderEliminarHola, puedes bajar el proyecto desde el enlace de descarga
Eliminarmuy buena explicación, gran aporte, pero tengo una duda, como le hago para activar la función "guardar como..."?.
ResponderEliminarExiste alguna manera de hacerlo con jfilechooser???
muchas gracias...........!!! muy buenos tutos........!!!
ResponderEliminarHola! Muy buen ejemplo! Lo único que los archivos me los lee codificados... Seguro que es una chorrada pero cómo soluciono esto? Saludos!
ResponderEliminarEl ejemplo del principio es todo lo que necesitas.no se entiende a que te refieres mediante un menu.ahi ya depende de otros coponentes que quieras emplear, como botons,menu de opciones, etc.
EliminarWow enserio que muchas gracias por su tiempo y por compartir sus conocimientos, estoy seguro que no soy el unico a quien han salvado.
ResponderEliminarGracias de nuevo y sigan asi!!
Muy útil :D GRACIAS
ResponderEliminarMuchas gracias me fue muy util tu ayuda
ResponderEliminarHola he llegado a este lugar buscando una ayuda con respecto a este componente. El problema que tengo es que al poner cancelar en el filechoser también ejecuta el guardado,¿alguien tiene alguna idea de como lo controlaría?
ResponderEliminarSaludos.
hola buen día, sabes estoy haciendo un programa algo similar pero lo que deseo es cargar un pdf visualizarlo en la parte del formulario que deseo, guardarlo en un base de datos, pero no consigo hacer que me cargue y por consiguiente visualizarlo, por favor agradecería su ayuda ya que trabajo con la plataforma de netbeans, muchas gracias.
ResponderEliminarMuchas gracias! Me ha servido de mucho!
ResponderEliminarHola Cristian, gracias por tu aporte, lo voy a usar para realizar un reproductor musical en java :D saludos
ResponderEliminarme gustaria utilizar eso pero que copie y lo pegen en una carpeta donde yo le marco la ruta y le cambie el nombre
ResponderEliminarComo puedo abrir un archivo de texto mediante un menu
ResponderEliminarComo puedo abrir un archivo de texto mediante un menu ayudenme porfavor
ResponderEliminarComo puedo abrir un archivo de texto mediante un menu
ResponderEliminarEl ejemplo del principio es todo lo que necesitas.no se entiende a que te refieres mediante un menu.ahi ya depende de otros coponentes que quieras emplear, como botons,menu de opciones, etc.
EliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarExcelente andaba buscando como implementar una de estas ventanas en mi proyecto. Gracias!
ResponderEliminarMuchas excelente forma de explicar
ResponderEliminarAmigos tengo una duda como puedo guardar un numero diferente de 1 de imagenes con JFileChooser y guardarlos en un arraylist
ResponderEliminarHola disculpa tengo una duda, después de importar un txt como puedo transformar en vector para poder hacer cálculos estadístico
ResponderEliminarHola yo estoy haciendo un programa de facturas y pues cuando mando a imprimir hice que se habriera un JFileChooser y guarde el archivo como .xlsx, todo funciona muy bien lo que pasa es que me pidieron que cuando se guarde tenga el numero del ticket ejemplo: dijamos que en el JFileChooser en el nombre de archivo aparezca: ticket 512346 tomando como parametro lo que se puso en un jtextfield de una ventana aparte del JFileChooser
ResponderEliminarOlvidenlo ya lo solucione :v
ResponderEliminarExcelente aporte, muy claro, muchas gracias 👍
ResponderEliminarHAAAA PERROOO TRAES EL OMNITRIX
ResponderEliminarGracias por el amporte, muy interesante !!!
ResponderEliminarMe ayudó demasiado, muchas gracias.
ResponderEliminarNo pude importarlo a netbeans.. :C
ResponderEliminaresta es la mejor explicacion personal que he visto, respondiste en todo de mi tarea y aprendi mejor que en mi clase de progra bro, muchas gracias, sigue asi !
ResponderEliminar