web-dev-qa-db-fra.com

Comment utiliser FileDialog?

J'ai créé une interface et j'aimerais ajouter une fonction qui permet à l'utilisateur d'ouvrir un fichier. J'utilise AWT. Je ne comprends pas comment utiliser FileDialog. Pouvez-vous me donner un exemple ou un bon lien expliquant cela?

20
grb

Un exemple de code complet, avec filtrage de fichiers:

FileDialog fd = new FileDialog(yourJFrame, "Choose a file", FileDialog.LOAD);
fd.setDirectory("C:\\");
fd.setFile("*.xml");
fd.setVisible(true);
String filename = fd.getFile();
if (filename == null)
  System.out.println("You cancelled the choice");
else
  System.out.println("You chose " + filename);
32
Salvatorelab

Pour ajouter à la réponse de @TheBronx - pour moi, fd.setFile("*.txt"); ne fonctionne pas sur OS X. Cela fonctionne:

fd.setFilenameFilter(new FilenameFilter() {
    @Override
    public boolean accept(File dir, String name) {
        return name.endsWith(".txt");
    }
});

Ou comme une fantaisie Java 8 lambda:

fd.setFilenameFilter((dir, name) -> name.endsWith(".txt"));
9
Neal Ehardt

Il y a quelques exemples de code ici qui montrent comment l'utiliser pour diverses tâches différentes.

Cela dit, vous voudrez peut-être prendre du recul et vérifier si awt est la meilleure tâche pour le travail ici. Il y a des raisons valables de l'utiliser sur quelque chose comme swing/swt bien sûr, mais si vous débutez alors Swing, IMO serait un meilleur choix (il y a plus de composants, plus de tutoriels et c'est une bibliothèque plus largement demandée pour travailler avec ces jours-ci.)

3
Michael Berry