Académique Documents
Professionnel Documents
Culture Documents
ComousarelcomponenteJFileChooserenunaaplicacingrficaenJava|DiscoDurodeRoer
Dis
coD
u
r
odeR
o
er
Dejadegolpearatuordenadorysolucionatusproblemasaqu
Acercadem
Manuales
Ejercicios
Software
Sistemasoperativos
Ingls
Misaplicaciones
Contctanos
AdOptions
AdsbySmartSaver
Buscaloquenecesitesenlaweb
O CT
13
2014
ComousarelcomponenteJFileChooseren
unaaplicacingrficaenJava
Hola a todos, hoy os explicare como podemos usar el componente JFileChooser en una aplicacin
grficaenJava.
La clase JFileChooser nos permite acceder a nuestro sistema de ficheros y seleccionar ficheros. Esto
nos puede ser til para abrir fichero que contengan alguna informacin til para nuestra aplicacin o
inclusoparaguardarinformacinenficheros.
Search
Anuncios
Sguenos!
Vamosavercomofuncionapasoapaso,primerovamosacrearunaventanasimpleconuncampode
texto,unbotnyunreadetexto(conscroll).
Aquosdejoelcdigo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
importjava.awt.EventQueue;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.io.*;
importjavax.swing.*;
publicclassEjemploJFileChooserextendsJFrame{
privateJPanelcontentPane;
privateJTextFieldtextField;
privateJTextAreatextArea;
/**
*Launchtheapplication.
*/
publicstaticvoidmain(String[]args){
EventQueue.invokeLater(newRunnable(){
publicvoidrun(){
try{
EjemploJFileChooserframe=newEjemploJFileChooser();
frame.setVisible(true);
}catch(Exceptione){
e.printStackTrace();
}
}
});
}
/**
*Createtheframe.
*/
publicEjemploJFileChooser(){
//Parametrosasociadosalaventana
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100,100,450,300);
contentPane=newJPanel();
contentPane.setLayout(null);
setContentPane(contentPane);
textField=newJTextField();
textField.setToolTipText("Insertalarutadelficherodeaudio");
textField.setBounds(52,26,209,20);
contentPane.add(textField);
textField.setColumns(10);
JButtonbtnSeleccionar=newJButton("Seleccionar...");
btnSeleccionar.setBounds(288,25,109,23);
contentPane.add(btnSeleccionar);
textArea=newJTextArea();
textArea.setLineWrap(true);
textArea.setWrapStyleWord(true);
textArea.setBounds(52,76,360,156);
JScrollPanescroll=newJScrollPane(textArea);
scroll.setBounds(52,76,360,156);
contentPane.add(scroll);
http://www.discoduroderoer.es/comousarelcomponentejfilechooserenunaaplicaciongraficaenjava/
Skype
ContactaconnosotrosdesdeSkype!
Pinchaenlaimagenparaobtenermas
informacin
Donacin
Siquieresagradecernuestrotrabajodealguna
forma,puedeshacerloinvitndonosauncaf.
Manualesaletorios
TiposdeexcepcionesenJava
CaracteresdeescapeenJava
ComentariosdeJava
1/5
6/2/2015
ComousarelcomponenteJFileChooserenunaaplicacingrficaenJava|DiscoDurodeRoer
60
61
62
63
64
65
66
67
btnSeleccionar.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
}
});
}
}
Asquedara:
Arreglosoarraysenpseudocdigo
TraducirWPPollsdeWordpress
VerarchivosocarpetasocultasenWindows
FuncionexcelO
SelectoresbsicosCSS
ListaspersonalizadasenExcel
MtodosdeString
Contadordevisitas
TOPDescargados
Windows7portable
1289downloads 272.19MB
Download
(http://www.discoduroderoer.
es/?wpdmdl=7664)
Lossiguientesbloquesdecdigoqueveras,sonparacopiareneleventodelbotn,yaqueveremos
muchasversiones.PrimerocrearemosunobjetodeJFileChooser,lopodemoscrearsinparmetroso
unarutapordefectoindicadaconunStringounFile.
Despus invocamos el mtodo showOpenDialog(contentPane) que nos devolver un int, para saber
queopcinrealizaelusuario.Tenemoslassiguientesconstantes:
JFileChooser.CANCEL_OPTION:Sielusuariopulsaencancelar.
JFileChooser.APPROVE_OPTION:Sielusuariopulsaenaceptar
JFileCHooser.ERROR_OPTION:Siocurrealgnerror.
La que nos interesa es JFileChooser.APPROVE_OPTION, despus podemos copiar la ruta de ese
ficheroconelmtodogetSelectedFile()seguardaraenunobjetoFile.
Esta ruta la podramos guardar en el campo de texto, tambin podramos hacer que escribiera el
contenidodeltextoeneltextarea.
Veamoscomoquedademomento:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
//CreamoselobjetoJFileChooser
JFileChooserfc=newJFileChooser();
//Abrimoslaventana,guardamoslaopcionseleccionadaporelusuario
intseleccion=fc.showOpenDialog(contentPane);
//Sielusuario,pinchaenaceptar
if(seleccion==JFileChooser.APPROVE_OPTION){
//Seleccionamoselfichero
Filefichero=fc.getSelectedFile();
//Ecribelarutadelficheroseleccionadoenelcampodetexto
textField.setText(fichero.getAbsolutePath());
try(FileReaderfr=newFileReader(fichero)){
Stringcadena="";
intvalor=fr.read();
while(valor!=1){
cadena=cadena+(char)valor;
valor=fr.read();
}
textArea.setText(cadena);
}catch(IOExceptione1){
e1.printStackTrace();
}
}
Enelcasoanterior,solofuncionariaconficheroslegibles,noconotrostiposdeficheros,siqueremosque
solo se puedan seleccionar los ficheros legibles como los txt, deberemos crear un objeto de la
clase FileNameExtensionFilter, le pasaremos un String con la descripcin del filtro y despus las
extensionesenformadestring,unString por extensin. Este cdigo lo aadimos, despus de crear el
objetoJFileChooser:
1
2
3
4
5
//Creamoselfiltro
FileNameExtensionFilterfiltro=newFileNameExtensionFilter("*.TXT","txt");
//Leindicamoselfiltro
fc.setFileFilter(filtro);
TESTPETExam1
1031downloads 132.64MB
Download
(http://www.discoduroderoer.
es/?wpdmdl=7758)
TESTPETExam2
664downloads 119.82MB
Download
(http://www.discoduroderoer.
es/?wpdmdl=7759)
TestPETexam6
592downloads 176.26MB
Download
(http://www.discoduroderoer.
es/?wpdmdl=7764)
TestPETexam3
488downloads 28.49MB
Download
(http://www.discoduroderoer.
es/?wpdmdl=7762)
TestPETexam5
462downloads 82.92MB
Download
(http://www.discoduroderoer.
es/?wpdmdl=7763)
TestPETexam4
448downloads 27.81MB
Download
(http://www.discoduroderoer.
es/?wpdmdl=7761)
VocabularioPET
441downloads 310.80KB
Download
(http://www.discoduroderoer.
es/?wpdmdl=7755)
FCEExam(First
CertificateEnglish)1
parte
178downloads 81.88MB
Download
(http://www.discoduroderoer.
es/?wpdmdl=7712)
FCEExam(First
CertificateEnglish)2
parte
142downloads 220.19MB
Download
(http://www.discoduroderoer.
es/?wpdmdl=7713)
Asescomolovemos:
http://www.discoduroderoer.es/comousarelcomponentejfilechooserenunaaplicaciongraficaenjava/
2/5
6/2/2015
ComousarelcomponenteJFileChooserenunaaplicacingrficaenJava|DiscoDurodeRoer
Pordefecto,JFileChoosersolonospermiteelegirficheros,siqueremoselegirsolodirectoriosoambos,
usaremoselmtodosetFileSelectionMode(intmode),tambintenemosconstantesparaello:
JFileChooser.FILES_ONLY:soloficheros.
JFileChooser.DIRECTORIES_ONLY:solodirectorios.
JFileChooser.FILES_AND_DIRECTORIES:ficherosydirectorios.
Porejemplo:
AdsbySmartSaver
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
AdOptions
//CreamoselobjetoJFileChooser
JFileChooserfc=newJFileChooser();
//Indicamosloquepodemosseleccionar
fc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
//Creamoselfiltro
FileNameExtensionFilterfiltro=newFileNameExtensionFilter("*.TXT","txt");
//Leindicamoselfiltro
fc.setFileFilter(filtro);
//Abrimoslaventana,guardamoslaopcionseleccionadaporelusuario
intseleccion=fc.showOpenDialog(contentPane);
//Sielusuario,pinchaenaceptar
if(seleccion==JFileChooser.APPROVE_OPTION){
//Seleccionamoselfichero
Filefichero=fc.getSelectedFile();
//Ecribelarutadelficheroseleccionadoenelcampodetexto
textField.setText(fichero.getAbsolutePath());
try(FileReaderfr=newFileReader(fichero)){
Stringcadena="";
intvalor=fr.read();
while(valor!=1){
cadena=cadena+(char)valor;
valor=fr.read();
}
textArea.setText(cadena);
}catch(IOExceptione1){
e1.printStackTrace();
}
}
TambinpodemosseleccionarunaseriedeficherosconelmtodosetMultiSelectionEnabled(true) lo
insertaremos despus de crear el objeto. Debemos tener en cuenta, que para almacenar los
seleccionadosusaremosunarraydeFilesyenlugardeusarelmtodogetSelectedFile() usaremos el
mtodogetSelectedFiles().
Cambiaremosalgunascosasahora,elcampodetextonolousaremos:
1
2
3
4
5
6
7
8
9
10
//CreamoselobjetoJFileChooser
JFileChooserfc=newJFileChooser();
//Indicamosquepodemosseleccionarvariosficheros
fc.setMultiSelectionEnabled(true);
//Indicamosloquepodemosseleccionar
fc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
//Creamoselfiltro
http://www.discoduroderoer.es/comousarelcomponentejfilechooserenunaaplicaciongraficaenjava/
3/5
6/2/2015
ComousarelcomponenteJFileChooserenunaaplicacingrficaenJava|DiscoDurodeRoer
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
FileNameExtensionFilterfiltro=newFileNameExtensionFilter("*.TXT","txt");
//Leindicamoselfiltro
fc.setFileFilter(filtro);
//Abrimoslaventana,guardamoslaopcionseleccionadaporelusuario
intseleccion=fc.showOpenDialog(contentPane);
//Sielusuario,pinchaenaceptar
if(seleccion==JFileChooser.APPROVE_OPTION){
//Seleccionamoselfichero
File[]ficheros=fc.getSelectedFiles();
for(inti=0;i<ficheros.length;i++){
try(FileReaderfr=newFileReader(ficheros[i])){
Stringcadena="";
intvalor=fr.read();
while(valor!=1){
cadena=cadena+(char)valor;
valor=fr.read();
}
textArea.append(cadena+"\n");
}catch(IOExceptione1){
e1.printStackTrace();
}
}
}
Por ltimo, veremos como guardar texto en lugar de abrirlo, el campo de texto no lo usaremos, el
textarea contendr el texto del fichero. Usaremos el mtodo showSaveDialog(contentPane) para
guardarelfichero,recuerdaescribirelnombredelfichero.
AdsbySmartSaver
1
2
3
4
5
6
7
8
9
10
11
12
13
AdOpt
14
15
16
17
18
19
20
21
22
//CreamoselobjetoJFileChooser
JFileChooserfc=newJFileChooser();
//Abrimoslaventana,guardamoslaopcionseleccionadaporelusuario
intseleccion=fc.showSaveDialog(contentPane);
//Sielusuario,pinchaenaceptar
if(seleccion==JFileChooser.APPROVE_OPTION){
//Seleccionamoselfichero
Filefichero=fc.getSelectedFile();
try(FileWriterfw=newFileWriter(fichero)){
//Escribimoseltextoenelfichero
fw.write(textArea.getText());
}catch(IOExceptione1){
e1.printStackTrace();
}
EnnetBeans,tendreisquehacerlomismo.Tambinhayuncomponenteporsiloquereisponer
directamenteenunJFrame.
Esperoqueosseadeayuda.Sitenisdudas,preguntad.Estamosparaayudarte.
Backtotop
Comparteestaentrada!
41
Calificaestepost
Abrirunficherodesdenuestra
aplicacinenJava
InstalarNetBeansenLinux
2Comments
marilu
07/01/2015@
Hola,heutilizadoelJFileChosseryfuncionaperfectamenteparaaplicacionesdondeelclientey
http://www.discoduroderoer.es/comousarelcomponentejfilechooserenunaaplicaciongraficaenjava/
4/5
6/2/2015
ComousarelcomponenteJFileChooserenunaaplicacingrficaenJava|DiscoDurodeRoer
elservidorestanenlamismamaquina,elproblemaescuandoelservidoryelclienteestanen
maquinasdistintas,esdecirelclientequiereguardarunarchivoyledaclickenguardarpero
nuncaleapareceelcuadrodedialogoyaqueestecuadrodedialogoleapareceenlamaquina
delservidor,podriasayudarmecomosepuedehacerparaqueelcuadrodedialogoaparescaen
elladodelusuarioesdecirdelcliente.
00
Calificar
Pikao
08/01/2015@
Debescolocarelcdigoenlapartedelcliente.Unsaludo.
00
Calificar
LeaveaReply
YourName*
YourEmail*
YourWebsite
CdigoCAPTCHA*
PostComment
DiscoDurodeRoer2015
PoweredbyWordPressThemifyWordPressThemes
AdsbySmartSaver
http://www.discoduroderoer.es/comousarelcomponentejfilechooserenunaaplicaciongraficaenjava/
AdOptions
5/5