public boolean accept(File f) {
    if (f.isFile()) {
      String name = f.getName();
      int pos = name.lastIndexOf(".");
      if (pos > 0 && pos < name.length() - 1) {
        String suffix = name.substring(pos + 1);
        for (int i = 0; i < extensions.length; i++) {
          if (extensions[i].equals("*") || extensions[i].equals(suffix)) {
            return true;
          }
        }
      }
      return false;
    }
    else {
      return true;
    }
  }