FileDialog avec un filtre [Résolu]

infojava
Messages postés
35
Date d'inscription
vendredi 16 décembre 2005
Dernière intervention
30 mai 2006
- 28 avril 2006 à 16:32 - Dernière réponse : Twinuts
Messages postés
5292
Date d'inscription
dimanche 4 mai 2003
Dernière intervention
12 novembre 2018
- 28 avril 2006 à 16:51
Bonjour tt le monde :
je veux ouvrir un repertoire avec un filtre ; pour le moment je fais :
       FileDialog fd = new FileDialog(_getFrame(this),"Choose a  file",                                                        FileDialog.LOAD);<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /?>

                                        fd.show();

                                    if (fd.getFile() == null ) return; 

mais cela m affiche tte sorte de fichiers du repertoire .
maintenant je veux ne visualiser que les fichiers d'extention ".java"
que doi je rajouter a mon code?
Merci.
Afficher la suite 

Votre réponse

1 réponse

Meilleure réponse
Twinuts
Messages postés
5292
Date d'inscription
dimanche 4 mai 2003
Dernière intervention
12 novembre 2018
- 28 avril 2006 à 16:51
3
Merci
Salut,


pense au site de sun http://java.sun.com/docs/books/tutorial/uiswing/components/filechooser.html


sinon en concret il te faut developper un filtre et l'appliquer à ton JFileChooser


allé vu que je suis super cool today(c'est la fin de semaine :D)


cette classe tu peux la trouver sur le net et sur ce site je crois


NOTE : pour les commentaire tu as toutes les infos dans la java doc et dans le lien donné ci-dessus


public class ChoosableFileFilter extends FileFilter {

    private String[] prefixes;


    private String desc;


    public ChoosableFileFilter(String[] prefixes, String desc) {

        this.prefixes = prefixes;

        this.desc = desc;

    }


    private boolean belongs(String prefixe) {

        for (int i = 0; i < prefixes.length; ++i)

            if (prefixe.equals(prefixes[i]))

                return true;

        return false;

    }


    public boolean accept(File f) {

        if (f.isDirectory())

            return true;

        String prefixe = null;

        String s = f.getName();

        int i = s.lastIndexOf('.');

        if (i > 0 && i < s.length() - 1)

            prefixe = s.substring(i + 1).toLowerCase();

        return prefixe != null && belongs(prefixe);

    }


    public String getDescription() {

        return desc;

    }

    public String[] getPrefixes() {

        return prefixes;

    }

}


a l'utilisation tu fais


private static final ChoosableFileFilter FILE_FILTER = new ChoosableFileFilter(

            new String[] { "java" }, "Fichier Java (*.java)"

    );

/*

ou
private static final ChoosableFileFilter FILE_FILTER = new ChoosableFileFilter(

            new
String[] { "java" , "class", "jar" }, "Fichier Java (*.java, *.class,
*.jar)"


    );

*/

.....


FileChooser chooser = new JFileChooser();

//inutile de mettre un filtre si on voit tt les fichiers

chooser.setAcceptAllFileFilterUsed(false);

//on applique le filtre

chooser.addChoosableFileFilter(FILE_FILTER);

//on ouvre la boite de selection note que ca fonctionne aussi avec l'enregistrement de fichiers

int ret = choice.showOpenDialog(null);

if (ret == JFileChooser.APPROVE_OPTION) {

      //selection valide

}


WORA

Merci Twinuts 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 94 internautes ce mois-ci

Commenter la réponse de Twinuts

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.