[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:
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:
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 :roll:.
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:
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;
}
} |