如何为JFileChooser添加文件filter

我只想select.xls和.xlsx文件,但我无法select任何types的文件。 任何人都可以向我推荐任何代码,或者有人可以对我现有的代码进行更改吗? 提前致谢。

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 "); } } } 

你应该使用FileNameExtensionFilter 。

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

你也可以使用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"; } } 

现在在你的主类中使用:

 chooser.setFileFilter(new ExcelFilter());