关于swing:Java JFileChooser返回选择的目录而不是浏览它

Java JFileChooser Returns the Selected Directory Instead Of Browsing It

当我双击目录时,JFileChooser没有打开该目录,即它没有在浏览它,但是它选择了目录并返回。
如何实现JFileChooser,以便在双击时显示文件夹的内容?
如果设置了setFileSelectionMode(JFileChooser.FILES_ONLY),则行为符合我的要求,但是我必须使用FILES_AND_DIRECTORIES。


您可以添加自己的MouseListener

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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获取选定的文件,并检查该目录是否为目录,是否跟随该目录,是否为文件,则返回文件。同样,如果选择目录并单击打开,也会打开目录。