Когда я дважды щелкаю каталог, JFileChooser не открывает этот каталог, т. Е. Он не просматривает его, но выбирает каталог и возвращается. Как я могу реализовать JFileChooser, чтобы он отображал содержимое папки при двойном щелчке?
Если установлено setFileSelectionMode(JFileChooser.FILES_ONLY), то поведение соответствует моим потребностям, но я должен использовать ФАЙЛЫ_И_КАТАЛОГИ.
Java JFileChooser возвращает выбранный каталог вместо его просмотра
comment
Итак, чтобы было ясно, вы хотите, чтобы двойной щелчок переходил в каталог, но выбор с последующим нажатием «Открыть» возвращал выбранный каталог?
- person Dilum Ranatunga   schedule 19.04.2012
Ответы (1)
вы можете добавить свои собственные MouseListener
final JFileChooser fileChooser = new JFileChooser();
fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
fileChooser.addMouseListener(new MouseListener() {
@Override
public void mouseClicked(MouseEvent arg0) {
if(arg0.getClickCount() == 2) {
File file = fileChooser.getSelectedFile();
if(file.isDirectory()) {
fileChooser.setCurrentDirectory(file);
fileChooser.rescanCurrentDirectory();
}
else {
fileChooser.approveSelection();
}
}
}
//Other methods (can be empty)
});
Это проверяет наличие двойных щелчков и получает выбранный файл из JFileChooser
проверяет, является ли это каталогом и следует ли за ним, если это файл, он возвращает файл. Также, если вы выберете каталог и нажмете «Открыть», он откроет каталог.
person
twain249
schedule
19.04.2012