概要

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 all

解説

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

参考リンク

コメント