2017-05-30 58 views
0

我正在一个简单的下载管理器在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()); 

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

+0

阅读[用于showSaveDialog文档](http://docs.oracle的.com/JavaSE的/ 8 /文档/ API /的javax /摆动/ JFileChooser.h tml#showSaveDialog-java.awt.Component-)并密切关注返回值。 – VGR

回答

0

默认的JFileChooser目录是用户/例如 文件对我来说它

C:\用户\阿迪尔·艾哈迈德\文件 你将你的C:\用户\ your_login_account_name \文件 使用JFileChooser中打开

时的setCurrent目录设置默认目录
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()); 
相关问题