我正在用java创建一个简单的下载管理器。
在mac中运行代码时工作正常,但我在Windows 7中测试它,我遇到了这个问题:
如果我点击保存,它将离开C:\Users\Gui
如果我点击取消,则会将其更改为C:\Users\Gui\Documents
我正在使用的代码:
JFileChooser f = new JFileChooser();
f.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
f.showSaveDialog(null);
tfPath.setText(f.getCurrentDirectory().toString());
任何人都知道这个问题的解决方案吗?
答案 0 :(得分:0)
JFileChooser
的默认目录是用户/文档
对我而言
C:\ Users \ Adeel Ahmad \ Documents 对你而言,它将是你的C:\ Users \ your_login_account_name \ Documents 使用setcurrent目录设置打开jfilechooser时的默认目录
f.setCurrentDirectory("C:\somwhere");
您的代码调用f.getCurrentDirectory(),它将为您提供在JFileChooser.DIRECTORIES_ONLY模式下选择目录时所在目录的父目录。
您可能想要使用f.getSelectedFile()
这是您获得C:\Users\Gui\Documents
的原因,因为当您保存它时,它会获得其父目录
并且您也可以知道用户选择了保存或取消,JFileChooser.showSaveDialog
返回一个int,您可以将其与JFileChooser的常量进行比较
如果用户选择了保存或取消,您可以采取任何行动
JFileChooser.CANCEL_OPTION
或JFileChooser.APPROVE_OPTION
(表示保存选项)
JFileChooser f = new JFileChooser();
f.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
f.setCurrentDirectory(new File("D:\\"));
int result=f.showSaveDialog(null);
if(result==JFileChooser.APPROVE_OPTION)
tfPath.setText(f.getCurrentDirectory().toString());