import java.io.File;
import javax.swing.JFileChooser;
import javax.swing.filechooser.FileFilter;
public class FileChooserTest {
  public static void main(String [] args) {
  JFileChooser file = new JFileChooser (".");
   file.setAcceptAllFileFilterUsed(false);
   file.addChoosableFileFilter(new ExcelFileFilter("xls"));
    file.addChoosableFileFilter(new ExcelFileFilter("exe"));
   int result = file.showOpenDialog(null);
  if(result == JFileChooser.APPROVE_OPTION)
  {
   String path = file.getSelectedFile().getAbsolutePath();
   System.out.println(path);
  }
  else
  {    System.out.println("ȡر˴ڣ");
   }
 }

private static class ExcelFileFilter extends FileFilter {
  String ext;

  ExcelFileFilter(String ext) {
   this.ext = ext;
  }

  public boolean accept(File file) {

   if (file.isDirectory())   {
    return true;
   }
  
   String fileName = file.getName();
   int index = fileName.lastIndexOf('.');
   if (index > 0 && index < fileName.length() - 1)   {
    String extension = fileName.substring(index + 1).toLowerCase();
    if (extension.equals(ext))
     return true;
   }
   return false;
  }

 public String getDescription() {
   if (ext.equals("xls"))
   {     return "Microsoft Excelļ(*.xls)";   }
   if(ext.equals("exe"))   {
     return "ִļ(*.exe)";
   }
   return "";
  }
 }
}
