概要

JFileChooserにファイルフィルタを追加します。

サンプルコード

JFileChooser fileChooser = new JFileChooser();
fileChooser.addChoosableFileFilter(new FileFilter() {
  @Override public boolean accept(File file) {
    if (file.isDirectory()) {
      return true;
    }
    return file.getName().toLowerCase(Locale.ENGLISH).endsWith(".jpg");
  }

  @Override public String getDescription() {
    return "JPEGファイル(*.jpg)";
  }
});
view all

解説

上記のサンプルでは、JFileChooser#addChoosableFileFilter(FileFilter)メソッドを使用して拡張子がたとえば.jpgのファイルのみを表示するFileFilterを追加設定しています。


  • addChoosableFileFilter(FileFilter)メソッドを使うと、そのフィルタが現在選択されているフィルタになります。例えば「すべてのファイル」をデフォルト(選択された状態)に戻したい場合は、JFileChooser#getAcceptAllFileFilter()を再設定する -
  • JDK 7からJFileChooser#addChoosableFileFilter(...)内でJFileChooser#setFileFilter(...)を呼ばなくなった

FileDialog fd = new FileDialog(frame, "title");
FilenameFilter filter = (dir, file) -> file.toLowerCase(Locale.ENGLISH).endsWith(".jpg");
fd.setFilenameFilter(filter);

// FileNameExtensionFilter(String description, String... extensions)
FileFilter filter = new FileNameExtensionFilter("JPEGファイル(*.jpg)", "jpg", "jpeg");
fileChooser.addChoosableFileFilter(filter);

参考リンク

コメント