如何使用JFileChooser将最后一个路径设置为下一个默认路径

时间:2014-03-18 03:47:22

标签: java path directory jfilechooser

我有几个提供文件选择器的对话框。首先,我的编码就像这样

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中设置被选为默认路径的最后一个路径。我有什么解决方案吗? 感谢您的回复

2 个答案:

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