Решение переопределения approveSelection
может раздражать некоторых пользователей.
Иногда пользователь просто щелкает файл в каталоге без причины (даже если он хочет выбрать каталог, а не файл).Если это произойдет, пользователь (вроде бы) застрянет в JFileChooser
, так как approveSelection
не удастся, даже если он отменит выбор файла.Чтобы избежать этого раздражения, вот что я делаю:
JFileChooser fileChooser = new JFileChooser();
fileChooser.setFileSelectionMode(
JFileChooser.FILES_AND_DIRECTORIES);
int option = fileChooser.showDialog(null,
"Select Directory");
if (option == JFileChooser.APPROVE_OPTION) {
File f = fileChooser.getSelectedFile();
// if the user accidently click a file, then select the parent directory.
if (!f.isDirectory()) {
f = f.getParentFile();
}
System.out.println("Selected directory for import " + f);
}
Выбор каталога, даже когда пользователь выбрал файл, на мой взгляд, повышает удобство использования.