JFileChooserで選択できるファイルにフィルターをかけることができるそうです。javax.swing.filechooser.FileFilterから継承したクラスを作っておいて、それをaddChoosableFileFilterメソッドに引き渡せばよいそうです。 FileFilterの実装は自分でしないといけないのですが、大抵の場合は拡張子で判定したいだけなので
new FileFilterExt(String ext[], String desc)
みたいな感じなものを作っておくと便利だと思います。 あと、配列を確保してすぐ引数に渡す時、foo(new String[]{"one", "two"});みたいに書けるのを試行錯誤して発見しました・・・。(真面目にマニュアルを読んでないので知らなかった)
import java.io.File; import java.lang.*; import java.util.*; public class FileFilterExt extends javax.swing.filechooser.FileFilter{ private final String _desc; private final String[] _ext; public FileFilterExt(String[] extension, String description) { HashSet extset = new HashSet(); for(int i=0; i<extension.length; i++){ extset.add(extension[i].toLowerCase()); } _ext = (String[])extset.toArray(new String[0]); _desc = description; } public boolean accept(java.io.File f) { if(f.isDirectory()){ return true; } String extension = getExtension(f); for(int i=0; i<_ext.length; i++){ if( _ext[i].equals(extension) ){ return true; } } return false; } public String getDescription() { return _desc; } private String getExtension( File file ) { if(file == null) return null; String filename = file.getName(); int i = filename.lastIndexOf('.'); try { return filename.substring(i+1).toLowerCase(); } catch(Exception e) { return null; } } }