private void openMenuActionPerformed(Java.awt.event.ActionEvent evt) {
DBmanager db = new DBmanager();
if (!db.getCurrentUser().equals("Admin")) {
JOptionPane.showMessageDialog(this, "You are Not Allowed to Run Applications");
JFileChooser fileChooser = new JFileChooser();
fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
fileChooser.addChoosableFileFilter(new FileNameExtensionFilter("PDF Documents", "pdf"));
fileChooser.addChoosableFileFilter(new FileNameExtensionFilter("MS Office Documents", "docx", "xlsx", "pptx"));
fileChooser.addChoosableFileFilter(new FileNameExtensionFilter("Images", "jpg", "png", "gif", "bmp"));
fileChooser.setAcceptAllFileFilterUsed(false);
int returnVal = fileChooser.showOpenDialog(this);
if (returnVal == JFileChooser.APPROVE_OPTION) {
File file = fileChooser.getSelectedFile();
if (Desktop.isDesktopSupported()) {
try {
Desktop.getDesktop().open(file);
} catch (Exception e) {
e.printStackTrace();
}
}
}
} else if (db.getCurrentUser().equals("Admin")) {
JFileChooser fileChooser = new JFileChooser();
fileChooser.setAcceptAllFileFilterUsed(true);
int returnVal = fileChooser.showOpenDialog(this);
if (returnVal == JFileChooser.APPROVE_OPTION) {
File file = fileChooser.getSelectedFile();
if (Desktop.isDesktopSupported()) {
try {
Desktop.getDesktop().open(file);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}// TODO add your handling code here:
}
Salut les gars .... J'essaie de filtrer des fichiers dans un filtre de fichiers en définissant fileChooser.setAcceptAllFileFilterUsed(false);
. L'option "tous les fichiers" disparaît de la FileChooser
mais tous les fichiers restent visibles à moins que vous ne sélectionniez une option dans PDF documents, ms Office ou images.Je ne souhaite utiliser que mes 3 filtres personnalisés à l'ouverture du sélecteur de fichiers.
Par exemple, si vous souhaitez filtrer votre JFileChooser
afin d’afficher strictement les fichiers d’image les plus couramment trouvés, utilisez la méthode suivante:
FileNameExtensionFilter filter = new FileNameExtensionFilter("Image Files", "jpg", "png", "gif", "jpeg");
JFileChooser fileChooser = new JFileChooser();
fileChooser.setFileFilter(filter);
Le premier argument est la description (ce qui est affiché lors de la sélection en bas) et le second argument correspond aux extensions de fichier informelles.
Vous pouvez utiliser FileNameExtensionFilter
pour ajouter des extensions autorisées à votre boîte de dialogue FileChooser
. Voici un exemple:
JFileChooser chooser = new JFileChooser();
FileNameExtensionFilter filter = new FileNameExtensionFilter(
"JPG & GIF Images", "jpg", "gif");
chooser.setFileFilter(filter);
Pour plus d'informations, reportez-vous aux Javadocs: FileNameExtensionFilter
Cela fonctionne bien en Java8.1
JFileChooser dbfilechooser = new JFileChooser();
FileNameExtensionFilter filter1 =
new FileNameExtensionFilter("xls","xls");
FileNameExtensionFilter filter2 =
new FileNameExtensionFilter("xlsx", "xlsx");
FileNameExtensionFilter filter3 =
new FileNameExtensionFilter("csv", "csv");
dbfilechooser.addChoosableFileFilter(filter1);
dbfilechooser.addChoosableFileFilter(filter2);
dbfilechooser.addChoosableFileFilter(filter3);
Dans mon cas, je devais mettre le
setFileFilter(
new FileNameExtensionFilter("Default file filter", ...)
);
après tous les autres appels à la méthode
addChoosableFileFilter(...);
pour que setAcceptAllFileFilterUsed (false) fonctionne.