IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Agents de placement/Fenêtres Java Discussion :

probleme JFileChooser et FileFilter


Sujet :

Agents de placement/Fenêtres Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 26
    Par défaut probleme JFileChooser et FileFilter
    bonjour à tous,

    voila je n'arrive pas à appliquer un filtre dans une fenêtre, voici mes deux classes qui sont censé faire ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    package mod;
     
    import java.io.File;
    import java.io.FileFilter;
     
    /**
     *
     * @author alex
     */
    public class filtreMod implements FileFilter{
     
         //Description et extension acceptée par le filtre
       private String description;
       private String extension;
       //Constructeur à partir de la description et de l'extension acceptée
       public filtreMod(String description, String extension){
          if(description == null || extension ==null){
             throw new NullPointerException("La description (ou extension) ne peut être null.");
          }
          this.description = description;
          this.extension = extension;
       }
       //Implémentation de FileFilter
       public boolean accept(File file){
          if(file.isDirectory()) {
             return true;
          }
          String nomFichier = file.getName().toLowerCase();
     
          return nomFichier.endsWith(extension);
       }
          public String getDescription(){
          return description;
       }
    }
    ainsi que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    package mod;
    
    import java.io.File;
    import java.io.FileFilter;
    import javax.swing.JFileChooser;
    
    /**
     *
     * @author alex
     */
    public class boiteDialogue {
        File fichier;
    
    /**
     *
     * @param titre donne le titre souhaité à la boite de dialogue
     * @return le fichier sélectionné
     */
        public File ouvertureBoite(String titre){
            //JFileChoose est ue boite de dialogue en graphique qui propose à l'utilisateur
            //de parcourir le disque et de choisir le fichier souhaité
            FileFilter model = new filtreMod("fichiers mod","mod");
            JFileChooser fc = new JFileChooser(".");
            fc.addChoosableFileFilter(model);  // LE SOUCI
            // la variable titre permet de donner un titre à ma boite de dialogue pour la rendre plus explicite
            fc.setDialogTitle(titre);
    		int retour=fc.showOpenDialog(null);
                    // si l'on a fait un choix de fichier celui-ci est récupéré dans la vairiable fichier
    			if(retour==JFileChooser.APPROVE_OPTION){
    				fichier=fc.getSelectedFile();
        }
                    // nous retourne le fichier sélectionné
                    return fichier;
        }
    
    }
    après plusieurs recherches, j'ai vu que dans ma classe filtreMod il aurait fallu mettre 'extends FileFilter' mais cela me cré des soucis dans l'autre classe du coup j'ai mis 'implements' et ca m'enlève un premier souci , de plus si je mets extends ca me mets 'no interface expected here'.
    Deuxième souci ( à l'endroit où j'ai marqué plus haut LE SOUCI ) il me met un message d'erreur pour le type utilisé : required javax.swing.fileChooser.FileFilter

    voilà donc je peux pas filtrer, si quelqu'un a une idée
    merci d'avance

  2. #2
    Membre Expert
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 099
    Par défaut La solution
    Bonjour,

    En fait, il y a plus simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            JFileChooser selectionFichier = new JFileChooser();
            FileNameExtensionFilter filtre = new FileNameExtensionFilter("votre description", "mod");
            selectionFichier.setFileFilter(filtre);
    Pour ce qui est de FileFilter, il s'agit d'une classe et non d'une interface. Soit vous l'utilisez en tant que telle, en l'instanciant, soit vous l'étendez si vous voulez lui ajouter des fonctionnalités.
    On utilise le mot clé implements pour implémenter une interface. Ca permet d'implémenter un 'jeu' de méthode pré-formatées pour s'assurer que votre classe dispose des méthodes qui seront appelées par une autre.
    Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
    Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !

    Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
    Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
    Tout sur les réseaux : https://reseau.developpez.com/cours/
    Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
    Tout sur le matériel : https://hardware.developpez.com/cours/

  3. #3
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 26
    Par défaut
    merci beaucoup pour cette réponse, je test ça ce soir..
    en tout cas maintenant j'ai l'air ridicule avec mes deux classes
    dernière question peut-on ouvrir plusieurs fichiers en même temps avec un JFileChooser??
    cdlt

  4. #4
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    En regardant dans la javadoc tu trouveras ceci

  5. #5
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 26
    Par défaut
    merci je n'avais pas vu ceci.

    si j'ai bien compris je peux faire ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    JFileChooser selectionFichier = new JFileChooser();
    FileNameExtensionFilter filtre = new FileNameExtensionFilter("votre description", "mod");
    selectionFichier.setFileFilter(filtre);
    selectionFichier.setMultiSelectionEnable(true);
    la question que je me pose, c'est que avant je retournais un seul fichier et donc maintenant je dois en retourner plusieurs, puis-je faire un tableau de type File contenant tous mes fichiers et retourner ce tableau afin de le réutiliser?

    Question un peu bête, je ferais mieux de tester avant mais bon je la laisse au cas ou...

    Merci beaucoup pour tous ces retours si rapide.

  6. #6
    Membre Expert
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 099
    Par défaut La solution
    Bonjour,

    En fait, avant vous utilisiez au retour du dialogue la méthode getSelectedFile() de votre instance de JFileChooser. Comme vous a invitez à le faire très justement sinok, si vous réglez la propriétés de contrôle de sélection multiple a vrai, pour récupérer tous les fichiers sélectionnés il suffit maintenant d'invoquer la méthode getSelectedFiles() (avec un 's') pour récupérer instantanément un File[] qui contiendra tous les objets File représentant chacun des fichiers sélectionnés.
    Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
    Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !

    Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
    Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
    Tout sur les réseaux : https://reseau.developpez.com/cours/
    Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
    Tout sur le matériel : https://hardware.developpez.com/cours/

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probleme avec JFileChooser
    Par L4BiN dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 04/07/2007, 17h03
  2. probleme d'apparition du JFileChooser coté client
    Par krikete13 dans le forum JSF
    Réponses: 6
    Dernier message: 05/06/2007, 10h39
  3. [JFileChooser] Problème avec FileFilter
    Par drasalmed dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 13/05/2007, 18h15
  4. JFileChooser - Probleme de LookAndFeel
    Par bugmenot dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 23/12/2006, 17h52
  5. [JFileChooser][FileFilter]comment ça marche ?
    Par Sarrus dans le forum Débuter
    Réponses: 4
    Dernier message: 23/06/2005, 10h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo