2008-11-12 23 views
32

Me preguntaba si había algún tipo de herramienta J en la biblioteca de java swing que abre una ventana del explorador de archivos y permite al usuario elegir un archivo. Entonces, la salida del archivo sería la ruta absoluta del archivo elegido.¿Cómo buscar un archivo en la biblioteca java swing?

Gracias de antemano,

Respuesta

37

Puede utilizar la clase JFileChooser, comprobar this example.

+27

Si no necesita toda la flexibilidad de JFileChooser, debe usar java.awt.FileDialog en su lugar. Sus usuarios de OS X se lo agradecerán. FileDialog utiliza una ventana de selección de archivos nativos, mientras que JFileChooser es un componente de swing y carece de atajos de teclado y otras sutilezas. –

+6

¡Tus usuarios de Windows también te lo agradecerán! –

12

Terminé usando esta pieza rápida de código que hice exactamente lo que necesitaba:

final JFileChooser fc = new JFileChooser(); 
fc.showOpenDialog(this); 

try { 
    // Open an input stream 
    Scanner reader = new Scanner(fc.getSelectedFile()); 
} 
6

el siguiente ejemplo se crea un selector de archivos y lo muestra como un primer cuadro de diálogo de archivo abierto y luego como Guardar- diálogo de archivo:

String filename = File.separator+"tmp"; 
JFileChooser fc = new JFileChooser(new File(filename)); 

// Show open dialog; this method does not return until the dialog is closed 
fc.showOpenDialog(frame); 
File selFile = fc.getSelectedFile(); 

// Show save dialog; this method does not return until the dialog is closed 
fc.showSaveDialog(frame); 
selFile = fc.getSelectedFile(); 

Este es un ejemplo más elaborado que crea dos botones que crean y muestran cuadros de diálogo de selección de archivos.

// This action creates and shows a modal open-file dialog. 
public class OpenFileAction extends AbstractAction { 
    JFrame frame; 
    JFileChooser chooser; 

    OpenFileAction(JFrame frame, JFileChooser chooser) { 
     super("Open..."); 
     this.chooser = chooser; 
     this.frame = frame; 
    } 

    public void actionPerformed(ActionEvent evt) { 
     // Show dialog; this method does not return until dialog is closed 
     chooser.showOpenDialog(frame); 

     // Get the selected file 
     File file = chooser.getSelectedFile(); 
    } 
}; 

// This action creates and shows a modal save-file dialog. 
public class SaveFileAction extends AbstractAction { 
    JFileChooser chooser; 
    JFrame frame; 

    SaveFileAction(JFrame frame, JFileChooser chooser) { 
     super("Save As..."); 
     this.chooser = chooser; 
     this.frame = frame; 
    } 

    public void actionPerformed(ActionEvent evt) { 
     // Show dialog; this method does not return until dialog is closed 
     chooser.showSaveDialog(frame); 

     // Get the selected file 
     File file = chooser.getSelectedFile(); 
    } 
}; 
0

En WebStart y en el nuevo Plug-in 6u10 puede usar FileOpenService, incluso sin los permisos de seguridad. Por razones obvias, solo obtiene el contenido del archivo, no la ruta del archivo.

Cuestiones relacionadas