Java JFileChooser возвращает выбранный каталог вместо его просмотра

Когда я дважды щелкаю каталог, JFileChooser не открывает этот каталог, т. Е. Он не просматривает его, но выбирает каталог и возвращается. Как я могу реализовать JFileChooser, чтобы он отображал содержимое папки при двойном щелчке?
Если установлено setFileSelectionMode(JFileChooser.FILES_ONLY), то поведение соответствует моим потребностям, но я должен использовать ФАЙЛЫ_И_КАТАЛОГИ.


person markAnthopins    schedule 19.04.2012    source источник
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