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?
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);
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"));
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.)