使用JFileChooser时,需要使用FileFilter来过滤出我们希望得到的数据、而据我查资料了解,可以写出几种文件过滤的方法、贴出2中常用方法来过滤文件类型:
package ui; import java.io.File; import javax.swing.JFileChooser; import javax.swing.filechooser.FileNameExtensionFilter; public class FileChooserUtil { private static JFileChooser fileChooser; static { fileChooser = new JFileChooser(); FileNameExtensionFilter filter = new FileNameExtensionFilter( "Excel文件(*.xls)", "xls"); fileChooser.setFileFilter(filter); fileChooser.showOpenDialog(null); } public File getSelectedFile() { return fileChooser.getSelectedFile(); } }
需要注意的一点是:fileChooser.showOpenDialog(null);这句代码,必须要放在文件过滤代码的下面,如果放在过滤代码之前,会有意想不到的效果,有兴趣的可以试试。
第二种文件过滤的代码:
package ui; import java.io.File; import javax.swing.JFileChooser; import javax.swing.filechooser.FileFilter; import javax.swing.filechooser.FileNameExtensionFilter; public class FileChooserUtil { private static JFileChooser fileChooser; static { fileChooser = new JFileChooser(); fileChooser.setFileFilter(new FileFilter() { @Override public String getDescription() { // TODO Auto-generated method stub return "显示Excel 文件(*.xls)"; } @Override public boolean accept(File f) { // TODO Auto-generated method stub if (f.getName().toLowerCase().endsWith(".xls") || f.isDirectory()) return true; return false; } }); fileChooser.showOpenDialog(null); } public File getSelectedFile() { return fileChooser.getSelectedFile(); } }
这两种方法用的还是比较多的,需要注意的是accept()返回布尔型,可以设定你想过滤的格式,然后遇到这种格式的时候,返回真就可以在JFileChooser的窗体里面是显示了。