Java JFileChooser返回选定的目录而不是浏览它

时间:2012-04-19 16:12:52

标签: java swing user-interface filesystems jfilechooser

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

1 个答案:

答案 0 :(得分:2)

您可以添加自己的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检查中获取所选文件,如果这是一个目录,如果它是跟随它,如果它是一个文件则返回该文件。此外,如果您选择一个目录并点击打开它会打开目录。