如何为JFileChooser添加文件筛选器

时间:2015-09-18 08:29:58

标签: java excel jfilechooser filechooser

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

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

3 个答案:

答案 0 :(得分:3)

您应该使用FileNameExtensionFilter

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

答案 1 :(得分:0)

您也可以使用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());

答案 2 :(得分:0)

改善@Amila的评论,应该是这样的:

 FileNameExtensionFilter filter = new FileNameExtensionFilter("Excel files", "xlsx", "xls");
 fileChooser.addChoosableFileFilter(filter);            
 fileChooser.setFileFilter(filter);