我有几个提供文件选择器的对话框。首先,我的编码就像这样
JFileChooser chooser= new JFileChooser();
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
int returnVal= chooser.showOpenDialog(this);
if(returnVal==JFileChooser.APPROVE_OPTION){
File f= chooser.getSelectedFile();
jTextField1.setText(f.getPath());
chooser.setCurrentDirectory(f);
}
在我的情况下,我想在下一个选择JFileChooser中设置被选为默认路径的最后一个路径。我有什么解决方案吗? 感谢您的回复
答案 0 :(得分:3)
你必须记住"最后一条路。
这可以通过将值存储在实例变量中来轻松完成......
private File lastPath;
//...
lastPath = f.getParentFile();
只需在需要时重置它......
//...
if (lastPath != null) {
chooser.setCurrentDirectory(lastPath);
}
您还可以使用JFileChooser
的单个实例,因此每次显示时,它都会显示在最后使用位置...
答案 1 :(得分:3)
根据您的要求,您可以使用“首选项”将其存储起来,并在重新启动程序后再次使用它。
Preferences pref = Preferences.userRoot();
// Retrieve the selected path or use
// an empty string if no path has
// previously been selected
String path = pref.get("DEFAULT_PATH", "");
JFileChooser chooser = new JFileChooser();
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
// Set the path that was saved in preferences
chooser.setCurrentDirectory(new File(path));
int returnVal = chooser.showOpenDialog(null);
if (returnVal == JFileChooser.APPROVE_OPTION)
{
File f = chooser.getSelectedFile();
chooser.setCurrentDirectory(f);
// Save the selected path
pref.put("DEFAULT_PATH", f.getAbsolutePath());
}