• category: swing folder: FileChooserMultiSelection title: JFileChooserで複数ファイルの選択を行う tags: [JFileChooser] author: aterai pubdate: 2017-04-17T14:42:10+09:00 description: JFileChooserで複数ファイルの選択ができるように設定します。 image: https://drive.google.com/uc?id=1-cun-rfsw3qiGmb6K8Fp5hlrAArduvrQHw

概要

JFileChooserで複数ファイルの選択ができるように設定します。

サンプルコード

JFileChooser fileChooser = new JFileChooser();
// fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
// fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
// fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
fileChooser.setMultiSelectionEnabled(true);
int retvalue = fileChooser.showOpenDialog(getRootPane());
if (retvalue == JFileChooser.APPROVE_OPTION) {
  log.setText("");
  for (File file: fileChooser.getSelectedFiles()) {
    log.append(file.getAbsolutePath() + "\n");
  }
}
View in GitHub: Java, Kotlin

解説

  • Default
    • JFileChooserのデフォルトは複数ファイル選択不可
  • setMultiSelectionEnabled(true)
    • JFileChooser#setMultiSelectionEnabled(boolean)メソッドを使用して複数ファイル選択を可能に設定
    • 複数選択したファイルはJFileChooser#getSelectedFiles()で取得可能
      • 未選択の場合はnullではなく空のファイル配列(new File[0])が返り値になるが、開くボタンをクリックしてもJFileChooserは閉じない
    • デフォルトのFileSelectionModeJFileChooser.FILES_ONLYなので、Ctrl+Aでファイルのみが選択される
      • JFileChooser.FILES_ONLYでもファイルが未選択の場合はCtrl+マウスクリックでディレクトリが複数選択できてしまう?

参考リンク

コメント