Accueil
Accueil
Le
Club
Delphi
Kylix
C
C++
Java
J2EE
DotNET
& C#
Visual
Basic
Access
Pascal
Dev
Web
PHP
ASP
XML
UML
SQL
SGBD
Win
Linux
Autres



Comment traduire le JFileChooser ou le JColorChooser en français ?
auteur : L'équipe Java
Ces boîtes de dialogue ne suivent pas la locale de votre système. En fait chaque texte affiché dans ces boîtes de dialogue correspond à une ressource du UIManager. Il va donc falloir changer ces ressources.

Par exemple pour le JFileChooser vous pouvez dans votre code faire :

UIManager.put("FileChooser.saveButtonText","Enregistrer"); UIManager.put("FileChooser.openButtonText","Ouvrir"); UIManager.put("FileChooser.cancelButtonText","Annuler"); UIManager.put("FileChooser.updateButtonText","Actualiser"); UIManager.put("FileChooser.helpButtonText","Aide"); UIManager.put("FileChooser.saveButtonToolTipText","Enregistre le fichier");

Comment visualiser avec un JFileChooser le poste de travail, le bureau, etc. ?
auteur : bulbo
La classe FileSystemView, du package javax.swing.filechooser, permet de récupérer notamment le home directory et le répertoire par défaut. Sous windows, ces deux répertoires correspondent au bureau et à "Mes documents". Vous pouvez donc facilement positionner le JFileChooser. Par exemple :

FileSystemView vueSysteme = FileSystemView.getFileSystemView(); //récupération des répertoires File defaut = vueSysteme.getDefaultDirectory(); File home = vueSysteme.getHomeDirectory(); //création et affichage des JFileChooser JFileChooser defautChooser = new JFileChooser(defaut); defautChooser.showOpenDialog(null); JFileChooser homeChooser = new JFileChooser(home); homeChooser.showOpenDialog(null);
Par contre, il n'existe pas de méthode toute faite pour se positionner de manière à voir tous les disques. Vous devrez faire comme ceci :

JFileChooser chooser = new JFileChooser(); chooser.setCurrentDirectory(new File("/")); chooser.changeToParentDirectory(); chooser.showOpenDialog(null);

Comment filtrer les fichiers acceptés par un JFileChooser ?
auteur : Ioan Calapodescu
Pour filtrer les fichiers affichés par un JFileChooser vous devez utiliser un FileFilter (package javax.swing.filechooser). Cette classe abstraite définit deux méthodes :

  • accept(File) : Cette méthode retourne un booléen indiquant si le fichier passé en paramètre est acceptable.
  • getDescription() : Cette méthode retourne un String décrivant le filtre. C'est cette description qui sera affichée dans le JFileChooser.

Voici un exemple simple d'implémentation.

public class FiltreSimple extends 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 FiltreSimple(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; } }
L'utilisation se fait comme ceci :

FileFilter java = new FiltreSimple("Fichiers Java",".java"); FileFilter classes = new FiltreSimple("Fichiers Class",".class"); FileFilter jar = new FiltreSimple("Fichiers JAR",".jar"); JFileChooser chooser = new JFileChooser("."); chooser.addChoosableFileFilter(java); chooser.addChoosableFileFilter(classes); chooser.addChoosableFileFilter(jar); chooser.showOpenDialog(null);
Vous pouvez télécharger cet exemple ci-dessous.

Ce filtre simple ne prend en compte qu'une seule extension. Vous pouvez regarder les liens ci-dessous pour un exemple de filtre "extensible" (capable de prendre en compte plusieurs extensions de fichiers).

Une dernière remarque : le filtrage ne se fait pas nécessairement sur une extension de fichier. Pour l'exemple on a choisi cette possibilité car c'est ce qui est le plus couramment rencontré. Vous pouvez tout à fait faire des filtres sur les tailles des fichiers, leurs dates de dernière modification, etc.

téléchargement : FiltreSimple.java

Comment faire un filtre de fichiers avec plusieurs extensions ?
auteur : Ioan Calapodescu
Voici un exemple d'implémentation de FileFilter (package javax.swing.filechooser) qui prend en compte plusieurs extensions. Quelques méthodes supplémentaires sont définies pour des facilités d'utilisation.

public class FiltreExtensible extends FileFilter{ //Description et extensions acceptées par le filtre private String description; private List<String> extensions; //Constructeur à partir de la description public FiltreExtensible(String description){ if(description == null){ throw new NullPointerException("La description ne peut être null."); } this.description = description; this.extensions = new ArrayList<String>(); } //Implémentation de FileFilter public boolean accept(File file){ if(file.isDirectory() || extensions.size()==0) { return true; } String nomFichier = file.getName().toLowerCase(); for(String extension : extensions){ if(nomFichier.endsWith(extension)){ return true; } } return false; } public String getDescription(){ StringBuffer buffer = new StringBuffer(description); buffer.append(" ("); for(String extension : extensions){ buffer.append(extension).append(" "); } return buffer.append(")").toString(); } //Quelques méthodes utilitaires public void setDescription(String description){ if(description == null){ throw new NullPointerException("La description ne peut être null."); } this.description = description; } public void addExtension(String extension){ if(extension == null){ throw new NullPointerException("Une extension ne peut être null."); } extensions.add(extension); } public void removeExtension(String extension){ extensions.remove(extension); } public void clearExtensions(){ extensions.clear(); } public List<String> getExtensions(){ return extensions; } }
Ce filtre peut s'utiliser comme ceci :

FiltreExtensible filtre = new FiltreExtensible("Fichiers Java"); filtre.addExtension(".java"); JFileChooser chooser = new JFileChooser("."); chooser.addChoosableFileFilter(filtre); chooser.showOpenDialog(null); filtre.addExtension(".class"); chooser.showOpenDialog(null); filtre.setDescription("Fichiers class"); filtre.removeExtension(".java"); chooser.showOpenDialog(null); filtre.setDescription("Tous les fichiers"); filtre.clearExtensions(); chooser.showOpenDialog(null);
Vous pouvez télécharger cet exemple ci-dessous.

téléchargement : FiltreExtensible.java

Comment "prévisualiser" les fichiers sélectionnés par un JFileChooser ?
auteur : Ioan Calapodescu
La classe JFileChooser permet au développeur de définir, avec la méthode setAccessory(Component) un composant accessoire. Ce composant peut se mettre à l'écoute des événements relatifs au JFileChooser grâce à un PropertyChangeListener.

Vous pouvez donc utiliser cet accessoire pour par exemple prévisualiser des images ou simplement pour avoir des informations détaillées sur le fichier sélectionné. Voici un exemple de rendu (vous pouvez télécharger l'implémentation ci-dessous) :

téléchargement : FilePreview.java


Consultez les autres F.A.Q's

Les codes sources présentés sur cette page sont libres de droits, et vous pouvez les utiliser à votre convenance. Pour le reste, ce document constitue une oeuvre intellectuelle protégée par les droits d'auteurs.

Ce document issu de http://www.developpez.com est soumis à deux licences, en fonction des contributeurs :

- Les contributions de Clément Cunin et Johann Heymes sont soumises aux termes de la la licence GNU FDL traduite en français ici. Permission vous est donnée de distribuer, modifier des copies des contributions de Clément Cunin et Johann Heymes tant que cette note apparaît clairement :
"Ce document issu de http://www.developpez.com est soumis à la licence GNU FDL traduite en français ici. Permission vous est donnée de distribuer, modifier des copies de cette page tant que cette note apparaît clairement".

- Pour ce qui est des autres contributions : Copyright © 2004 Developpez LLC : Tous droits réservés Developpez LLC. Aucune reproduction, ne peux en être faite sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.
Vos questions techniques : forum d'entraide PHP - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Copyright 2000..2004 www.developpez.com