2015-09-18 4 views
1

Je ne veux sélectionner que les fichiers .xls et .xlsx, mais je suis incapable de sélectionner n'importe quel type de fichier. Quelqu'un peut-il me suggérer un code ou quelqu'un peut-il apporter des modifications à mon code existant? Merci d'avance.Comment ajouter un filtre de fichier pour JFileChooser

public class Convertor { 
    public static void main(String[] args) { 
    JFileChooser chooser = new JFileChooser(); 
     chooser.setCurrentDirectory(new java.io.File(".")); 
     chooser.setDialogTitle("choosertitle"); 
     chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); 
     chooser.setAcceptAllFileFilterUsed(false); 

     if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) { 
      System.out.println("getCurrentDirectory(): " + chooser.getCurrentDirectory()); 
      System.out.println("getSelectedFile() : " + chooser.getSelectedFile()); 
     } else { 
      System.out.println("No Selection "); 
     } 
    } 
}  

Répondre

3

Vous devez utiliser FileNameExtensionFilter.

FileFilter filter = new FileNameExtensionFilter("Excel file", "xls", "xlsx"); 
chooser.addChoosableFileFilter(filter); 
+0

Permettez-moi. En tout cas merci beaucoup :) –

0

Vous pouvez également utiliser la classe FileFilter.

class ExcelFilter extends FileFilter { 

@Override 
public boolean accept(File pathname) { 
    String filename = pathname.getName(); 
    if (pathname.isDirectory()) { 
    return true; 

    } else if (filename.endsWith("xls") || filename.endsWith("xlsx")) { 
    return true; 
    } else { 
    return false; 
    } 
} 

@Override 
public String getDescription() { 
    return "Excel Files"; 
} 
} 

maintenant dans votre utilisation principale de la classe:

chooser.setFileFilter(new ExcelFilter());