Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JFileChooser返回所选目录,而不是浏览它_Java_Swing_User Interface_Filesystems_Jfilechooser - Fatal编程技术网

Java JFileChooser返回所选目录,而不是浏览它

Java JFileChooser返回所选目录,而不是浏览它,java,swing,user-interface,filesystems,jfilechooser,Java,Swing,User Interface,Filesystems,Jfilechooser,当我双击一个目录时,JFileChooser没有打开该目录,也就是说,它没有浏览该目录,但它选择了该目录并返回。 如何实现JFileChooser,以便在双击时显示文件夹的内容? 如果设置了setFileSelectionMode(仅限JFileChooser.FILES\u),则行为符合我的需要,但我必须使用文件和目录您可以添加自己的鼠标侦听器 final JFileChooser fileChooser = new JFileChooser(); fileChooser.setFileSel

当我双击一个目录时,JFileChooser没有打开该目录,也就是说,它没有浏览该目录,但它选择了该目录并返回。 如何实现JFileChooser,以便在双击时显示文件夹的内容?

如果设置了setFileSelectionMode(仅限JFileChooser.FILES\u),则行为符合我的需要,但我必须使用文件和目录

您可以添加自己的
鼠标侦听器

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
获取所选文件,检查该文件是否为目录,是否在其后面,如果是文件,则返回该文件。另外,如果您选择一个目录并点击“打开”,它将打开该目录。

为了清楚起见,您希望双击进入该目录,但选择后点击“打开”返回所选目录?