Sélection de fichiers

La classe FileDialog

La classe FileDialog, dérivée de la classe Dialog, permet d'obtenir les boîtes de sélection de fichiers fournies par le système.

Constructeur

Le constructeur attend 3 paramètres :

On pourra donc construire une boîte de sélection de fichiers en écrivant :

        FileDialog fDial=new FileDialog(this, "Ouvrir", FileDialog.LOAD);

en supposant que this représente ici la fenêtre d'une application qui est donc de classe Frame.

Méthodes

Pour utiliser la boîte de sélection de fichiers on fera appel aux méthodes :

Exemple d'utilisation

Ecrivons une application nommée ChoixFichier qui permet de sélectionner un fichier et qui affiche son nom dans une zone de texte.

Déclarations

On utilise deux variables : zoneTexte qui pointe sur la zone de texte et fDial qui est la boîte de sélection de fichiers.

        import java.awt.*;
        import java.awt.event.*;

        public class ChoixFichier extends Frame 
         implements ActionListener {

         TextArea zoneTexte=new TextArea();
         FileDialog fDial;

Constructeur

Le constructeur initialise la boîte de sélection de fichiers, insère la zone texte, crée un menu et affiche la fenêtre.

         public ChoixFichier() {
          super("Sélection de fichiers");
          fDial=new FileDialog(this, "Choisir", FileDialog.LOAD);
          // Définition et affichage du système de menus
          MenuBar mb=new MenuBar();
          setMenuBar(mb);
          Menu m1=new Menu("Fichier");
          mb.add(m1);
          MenuItem mi1=new MenuItem("Sélection...");
          mi1.setActionCommand("select");
          m1.add(mi1);
          mi1.addActionListener(this);
          MenuItem mi2=new MenuItem("Quitter");
          mi2.setActionCommand("quitter");
          m1.add(mi2);
          mi2.addActionListener(this);
          //zone texte
          add(BorderLayout.CENTER,zoneTexte);
          zoneTexte.setEditable(false);
          //fermeture de la fenêtre
          addWindowListener(new Fermeture());
          //taille et position
          pack();
          setBounds(50,50,300,400);
          //affichage
          setVisible(true);
         }

Gestion des évènements du menu

Le menu propose deux commandes : Sélection et Quitter. C'est la commande Sélection qui provoque l'affichage de la boîte de sélection de fichiers.

         public void actionPerformed(ActionEvent e) {
          if (e.getActionCommand().equals("quitter")) System.exit(0);
          else if (e.getActionCommand().equals("select")) {
           fDial.setVisible(true);
           String nom=fDial.getFile();
           if (nom!=null) {
            String dir=fDial.getDirectory();
            zoneTexte.append(dir+nom+"\n");
           }
           else zoneTexte.append("Sélection annulée.\n");
          }
         }

Autres méthodes

Il reste à écrire la méthode main et à créer la classe interne Fermeture qui gèrera la fermeture de la fenêtre.

         public static void main(String args[]) {
          System.out.println("Ouverture de l'application...");
          ChoixFichier fr=new ChoixFichier();
         }

         /**
          * Gestion de l'événement Case de fermeture
          */
         class Fermeture extends WindowAdapter { 
          public void windowClosing(WindowEvent event) {
           System.exit(0);
          }
         }
 
        }



Retour au menu