Filtre JFileChooser

guyrnaf Messages postés 8 Date d'inscription mercredi 12 mars 2003 Statut Membre Dernière intervention 11 mai 2006 - 17 mars 2003 à 22:25
cs_cedriiic Messages postés 6 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 11 août 2009 - 23 juin 2009 à 14:28
salut a tous

j'ai realiser un JFileChooser et je souhaiterais y appliquer un filtre qui limiterais le choix aux fichiers gif et jpg
merci de me repondre

guyrnaf

3 réponses

willowman Messages postés 143 Date d'inscription vendredi 5 juillet 2002 Statut Membre Dernière intervention 18 mars 2006 1
18 mars 2003 à 03:03
Salut !

Pour utiliser un filtre dans un JFileChooser, tu dois lui indiquer ce filtre via une methode : setFileFilter !
Ton filtre sera en faite une classe perso, qui deriveras de la classe abstraite 'FileFilter', et dans laquelle, tu redefiniras les
methodes abstraites : accept() et getDescription().

Voici un bout de code en exemple, pour les fichiers .txt :

import javax.swing.filechooser.FileFilter;

public class FiltreTXT extends FileFilter {

/** indique les ficihers dont l'extension sera
acceptee */
public boolean accept(File fichier) {
if(fichier.isDirectory()) {
return true;
}

/* on a recuperer l'extension du fichier et le tester */
String nomFichier = fichier.getName();
int i = nomFichier.lastIndexOf('.');

if (i > 0 && i < nomFichier.length() - 1) {
extension = nomFichier.substring(i+1).toLowerCase();

if(extension.equals("txt"))
return true;
}

return false;
}
/** fin de accept() */

/** methode servant a decrire le filtre de fichier */
public String getDescription() {
return "Description de mes fichiers TXT";
}
/** fin de getDescription() */

}

-- NOTE : --
Pour la methode accept, tu peux utiliser l'expression suivante, qui est bien plus courte :
return fichier.getName().toLowerCase().endsWith(".txt");
Ayant teste auparavant si tu traitais un repertoire !!
-------------

Maintenant dans ton JFileChooser, tu indiques ce filtre :

JFileChooser jfc = new JFileChooser();
jfc.setFileFilter(new FiltreTXT());

Allez, a pluche ;-)
0
cs_jaja31 Messages postés 2 Date d'inscription jeudi 26 juin 2008 Statut Membre Dernière intervention 28 août 2009
11 mars 2009 à 17:28
bonjour desole mais je nais pas tout a fait compris ton flitre
je sais qui permet de faire un flitre pour le fichier txt mais
je nai pas totu a fait comprid le fait des extension .
0
cs_cedriiic Messages postés 6 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 11 août 2009
23 juin 2009 à 14:28
On Récupère le fichier sélectionner dans le FileChooser
On récupère son nom puis on récupère l'extension en jouant sur la chaine de caractère.

Une fois l'extension récupéré on test puis on renvoi Vrai ou Faux.

Bien pratique et utilisable partout !

Mais chez moi ça ne marche pas
Cannot Find Symbol - class File

J'ai pourtant hérité de FileFilter et importer les package. ( même plus qu'il n'en faut pour être sur mais non toujours la même erreur)

Il est ou ce "File" ?
0