jFileChooser保存和取消按钮被更改(保存将取消,取消将保存)Java

时间:2017-05-30 13:12:56

标签: java jfilechooser

我正在用java创建一个简单的下载管理器。

在mac中运行代码时工作正常,但我在Windows 7中测试它,我遇到了这个问题:

如果我点击保存,它将离开C:\Users\Gui

的路径

如果我点击取消,则会将其更改为C:\Users\Gui\Documents

JFileChooser

我正在使用的代码:

JFileChooser f = new JFileChooser();
f.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
f.showSaveDialog(null);
tfPath.setText(f.getCurrentDirectory().toString());

任何人都知道这个问题的解决方案吗?

1 个答案:

答案 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_OPTIONJFileChooser.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());