2021-06-06 (日) 17:31:59
  • category: swing folder: FileFilter title: JFileChooserにファイルフィルタを追加 tags: [JFileChooser, FileFilter] author: aterai pubdate: 2003-11-17 description: JFileChooserにファイルフィルタを追加します。 image: https://lh5.googleusercontent.com/_9Z4BYR88imo/TQTMc7NJ5UI/AAAAAAAAAZM/p-hliI-ZnLs/s800/FileFilter.png

概要

JFileChooserにファイルフィルタを追加します。
JFileChooser fileChooser = new JFileChooser();
fileChooser.addChoosableFileFilter(new javax.swing.filechooser.FileFilter(){
  public boolean accept(File file){
    if(file.isDirectory()) return true;
    if(file.getName().toLowerCase().endsWith(".jpg")) return true;
    return false;
  }
  public String getDescription(){

  }
});

サンプルコード

View in GitHub: Java, Kotlin

解説

上記のサンプルでは、JFileChooser#addChoosableFileFilter(FileFilter)メソッドを使用して拡張子がたとえば.jpgのファイルのみを表示するFileFilterを追加設定しています。
  • -
  • addChoosableFileFilter(FileFilter)メソッドを使うとそのフィルタが現在選択されているフィルタになる
    • 例えば「すべてのファイル」をデフォルト(選択された状態)に戻したい場合は、JFileChooser#getAcceptAllFileFilter()を再設定する必要がある -
  • JDK 7からJFileChooser#addChoosableFileFilter(...)内でJFileChooser#setFileFilter(...)を呼ばなくなった
  • -
#spanend
#spanadd
FileDialog fd = new FileDialog(frame, "title");
#spanend
#spanadd
FilenameFilter filter = (dir, file) -> file.toLowerCase(Locale.ENGLISH).endsWith(".jpg");
#spanend
#spanadd
fd.setFilenameFilter(filter);
#spanend
#spanadd
  • -
#spanend
#spanadd
// FileNameExtensionFilter(String description, String... extensions)
#spanend
#spanadd
FileFilter filter = new FileNameExtensionFilter("JPEGファイル(*.jpg)", "jpg", "jpeg");
#spanend
#spanadd
fileChooser.addChoosableFileFilter(filter);
#spanend
#spanadd

参考リンク

コメント