Une fenêtre de dialogue pour choisir un fichier : JFileChooser

     

Nous signalons par l'exemple de ce paragraphe qu'il existe une classe du paquetage javax.swing permettant d'afficher une fenître de dialogue destinée à ouvrir ou sauvegarder un fichier en naviguant dans ses répertoires ; cette classe est la classe JFileChooser. La fenêtre de dialogue se présente comme toute fenître de mîme usage sous une autre application, avec en particulier la possibilité pour l'utilisateur de naviguer dans ses répertoires. On utilise ici la méthode showOpenDialog qui permet d'ouvrir un fichier à l'aide d'une fenêtre analogue à celle représentée ci-dessus ; il existe aussidans la classe JFileChooser la méthode statique showSaveDialog.

L'application qui nous sert d'exemple doit permettre à l'utilisateur :

Tant que la fenêtre de choix de fichier n'est pas fermée, l'application est bloquée : la fenêtre est modale.

On ne commente pas ici ce qui concerne les fichiers car cela fait l'objet d'un chapitre ultérieur.

import java.io.File;
import java.io.PrintWriter;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.JFileChooser;

class EssaiChoixFichier {
    public static void main(String[] arg) throws IOException {
	JFileChooser dialogue = new JFileChooser(new File("."));
	PrintWriter sortie;
	File fichier;
	
	if (dialogue.showOpenDialog(null)== 
	    JFileChooser.APPROVE_OPTION) {
	    fichier = dialogue.getSelectedFile();
	    sortie = new PrintWriter
		(new FileWriter(fichier.getPath(), true));
	    sortie.println(arg[0]);
	    sortie.close();
	}
    }
}

Vous pouvez voir :

  • le code de l'application décrite ici.
    new JFileChooser(new File(".")); : la fenêtre de dialogue présentera au départ le contenu du répertoire dont le chemin est indiqué en argument. On peut aussi utiliser le constructeur sans paramètre qui conduirait à avoir une fenêtre de dialogue présentant à l'ouverture le contenu du répertoire de connexion.
    dialogue.showOpenDialog(null) : cette instruction fait apparaître la fenêtre de dialogue permettant de sélectionner un fichier. Cette fenêtre est modale ; l'instruction renvoie une valeur au moment où la fenêtre est fermée. Cette valeur peut être APPROVE_OPTION ou bien CANCEL_OPTION. Le paramàtre est de type Component et peut indiquer le composant graphique "parent", la fenêtre se positionne alors devant le composant parent ; sinon, la fenêtre apparaît au milieu de l'écrant ..

    © Irène Charon, Télécom ParisTech 2011