1

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

4

1 回答 1

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

于 2012-04-19T16:40:35.820 回答