2008-11-12 17 views

Répondre

37

Vous pouvez utiliser la classe JFileChooser, vérifier this example.

+27

Si vous n'avez pas besoin de toute la flexibilité de JFileChooser, vous devriez plutôt utiliser java.awt.FileDialog. Vos utilisateurs OS X vous remercieront. FileDialog utilise une fenêtre de sélecteur de fichier natif, tandis que JFileChooser est un composant swing, et manque de raccourcis clavier et d'autres améliorations. –

+6

Vos utilisateurs de Windows vous remercierons aussi! –

12

Je fini par utiliser ce morceau rapide de code qui fait exactement ce que je avais besoin:

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

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

L'exemple suivant crée un sélecteur de fichier et affiche comme d'abord une boîte de dialogue de fichier ouvert, puis comme Enregistrer- boîte de dialogue de fichier:

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(); 

Voici un exemple plus élaboré qui crée deux boutons qui créent et affichent des boîtes de dialogue de sélection de fichiers.

// 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

Dans WebStart et le nouveau PlugIn 6u10, vous pouvez utiliser FileOpenService, même sans autorisations de sécurité. Pour des raisons évidentes, vous obtenez uniquement le contenu du fichier, pas le chemin du fichier.