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 :

[JFileChooser] Filtrage Multiple


Sujet :

Agents de placement/Fenêtres Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 64
    Par défaut [JFileChooser] Filtrage Multiple
    Bonjour,

    J'aimerais pouvoir ajouter un filtrage multiple à mon JFileChooser pour qu'il m'affiche tous les fichiers de mes filtres en même temps.

    Concrètement :

    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
    /**
         * create a JFileChooser
         * 
         * @return fileChooser
         */
        public JFileChooser createFileChooser(){
     
            JFileChooser fileChooser = new JFileChooser();
     
            // disable allow all format files
            fileChooser.setAcceptAllFileFilterUsed(false);
     
            // add file filter
            fileChooser.addChoosableFileFilter(new FileExtensionFilter(
                    "JPEG (*.jpg)", ".jpg"));
     
            // add file filter
            fileChooser.addChoosableFileFilter(new FileExtensionFilter(
                    "Portable Network Graphics (*.png)", ".png"));
     
            // add file filter
            fileChooser.addChoosableFileFilter(new FileExtensionFilter(
                    "Graphics Interchange Format (*.gif)", ".gif"));
     
            // allow to select only files
            fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
     
            browseChildren(fileChooser);
     
            return fileChooser;
        }

    Donc j'ai ici 3 filtres et j'aimerais un 4eme filtre qui regroupe ces 3 filtres en 1 de ce style là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    // add file filter
            fileChooser.addChoosableFileFilter(new FileExtensionFilter(
                    "Image Files (*.jpg, *.png, *.gif)", ".gif, .png, gif"));
    Sauf que bien sur, ca ne marche pas .

    Donc je m'demandais s'il y avait une syntaxe particulière pour faire ca ou bien si j'fallais que j'bidouille en faisant un truc sale.


    Ma p'tite classe fileFilter, rien de bien passionnant :

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
    public class FileExtensionFilter extends FileFilter{
     
        private final String description;
        private final String extension;
     
     
        /**
         * Constructor
         *
         * @param description extension description
         * @param extension extension
         */
        public FileExtensionFilter(String description, String extension){
     
            // call super
            super();
     
            this.description = description;
            this.extension = extension;
        }
     
        /* (non-Javadoc)
         * @see javax.swing.filechooser.FileFilter#accept(java.io.File)
         */
        /**
         * 
         */
        @Override
        public boolean accept(File file){
     
            if(file.isDirectory()){
     
                return true; 
            } 
     
            String fileName = file.getName().toLowerCase(); 
     
            return fileName.endsWith(extension);
     
        }
     
        /* (non-Javadoc)
         * @see javax.swing.filechooser.FileFilter#getDescription()
         */
        /**
         * 
         */
        @Override
        public String getDescription(){
            return description;
        }
     
        /**
         * @return extension the extension file
         */
        public String getExtension(){
            return extension;
        }
    }

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 64
    Par défaut
    Bon et bien comme je commence à prendre l'habitude de me répondre tout seul , voici la solution :

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
     
    public class FileExtensionFilter extends FileFilter{
     
        /** file description */
        private final String description;
     
        /** file extension */
        private String extension;
     
        /** files extensions */
        private String[] extensions;
     
        /**
         * Constructor
         *
         * @param description extension description
         * @param extension extension file
         */
        public FileExtensionFilter(String description, String extension){
     
            // call super
            super();
     
            this.description = description;
            this.extension = extension;
        }
     
        /**
         * Constructor
         *
         * @param description extension description
         * @param extensions extensions files
         */
        public FileExtensionFilter(String description, String[] extensions) {
     
            //call super
            super();
     
            this.description = description;
            this.extensions = extensions;
        }
     
        /* (non-Javadoc)
         * @see javax.swing.filechooser.FileFilter#accept(java.io.File)
         */
        /**
         * 
         */
        @Override
        public boolean accept(File file){
     
            if (file.isDirectory()){
     
                return true; 
            } 
     
            String fileName = file.getName().toLowerCase(); 
     
            if (extensions != null){
     
                boolean accept = false;
     
                for (int i=0; i<extensions.length; i++){
     
                    if (fileName.endsWith(extensions[i])){
     
                        accept = true;
                    }
                }
                return accept;
            }
            else {
     
                return fileName.endsWith(extension);
            }        
        }
     
        /* (non-Javadoc)
         * @see javax.swing.filechooser.FileFilter#getDescription()
         */
        /**
         * 
         */
        @Override
        public String getDescription(){
            return description;
        }
     
        /**
         * @return extension the extension file
         */
        public String getExtension(){
            return extension;
        }
     
        /**
         * @return the extensions
         */
        public String[] getExtensions() {
            return extensions;
        }
    }
    Merci moi

  3. #3
    Invité de passage
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 1
    Par défaut
    Problème bien posé et bien résolu =)

    Un petit copier/coller et hop mon FileChooser ne choisit que des ".jpg", ".gif" et ".png"

    merci beaucoup et félicitations!

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

Discussions similaires

  1. [XL-2007] Filtrage multiple d'un tableau excel avec macro
    Par robby98800 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 29/05/2012, 10h39
  2. Aide sur un filtrage multiple
    Par mead_Developper dans le forum Bases de données
    Réponses: 1
    Dernier message: 28/11/2010, 08h51
  3. Optimiser un filtrage multiple sur des listes.
    Par PauseKawa dans le forum Général Python
    Réponses: 31
    Dernier message: 16/09/2009, 17h22
  4. Solutions filtrages multiples
    Par Invité dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 09/01/2008, 20h25
  5. Réponses: 5
    Dernier message: 04/07/2006, 12h19

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