问题是showDialog不知道这是一个加载还是保存操作,所以它提供了一个文本框来输入新的文件/文件夹名。当您单击要进入的文件夹(作为双击的第一次单击)并且用户随后按“选择”时,该对话框将设置为“桌面”,并假定您要创建一个具有该名称的新文件夹并将其返回到路径中。
一种解决方案是改用showOpenDialog调用,手动更改选择器的标题和approve按钮。这样,用户就不会看到新的目录文本框。
代码如下所示:
JFileChooser fc = new JFileChooser();
fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
fc.setDialogTitle("Select a folder");
fc.setApproveButtonText(SELECT);
if(fc.showOpenDialog(singleton) == JFileChooser.APPROVE_OPTION) {
File folder = fc.getSelectedFile();
String path = folder.getPath() + File.separatorChar + "MYAPPFOLDER";
}