JFileChooser
设置 JFileChooser 的打开路径
当打开文件选择对话框 JFileChooser ,选择确认后关闭对话框,下次打开的时候并不会自动记住上次打开的路径。记住上次打开路径会显得更加人性化。因此,接下来来探讨一下保存 JFileChooser 之前打开的路径。
临时性设置
在程序运行时,将 JFileChooser 设置为全局变量,所以每次修改它的当前文件夹路径,在不关闭程序的情况下,再次调用 JFileChooser 便可从新设置的文件夹路径打开对话窗口,使用 setCurrentDirectory
方法处理。
// 设置为全局变量
private JFileChooser jfc ;
//......
// 初始化
JFileChooser jfc = new JFileChooser("F:\\CaiJinJu\\my-things\\2019");
//......
// 当成功选择文件后,保存当前路径为窗口打开路径
int returnVal = jfc.showOpenDialog(null);
if (returnVal == JFileChooser.APPROVE_OPTION) {
// 临时性修改文件夹打开对话框的目录
jfc.setCurrentDirectory(jfc.getSelectedFile());
}
当然,当程序关闭后,资源释放,下次再起程序便会重新初始化新的 JFileChooser ,所以这种设置称为临时性设置。
永久性设置
使用类似写入和读取文件的方式,将最新的文件选择对话框路径保存在硬盘上的某个文件,这样当程序关闭后,该路径不会丢失(除非把文件删了),下次再运行程序的时候,读取该文件的路径信息,重新设置,便可永久性的保存设置。
我们可以自己定义一个文件用以保存该路径信息,也可以直接利用注册表进行保存即可。
使用注册表保存时,别忘了在成功选择文件后,使用 put
重新保存最近打开的目录地址。
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JFileChooser jfc = null;
Preferences pref = Preferences.userRoot().node("/com/registerFile");
String key = "lastPath";
String lastPath = pref.get(key, "");
if (!lastPath.equals(""))
jfc = new JFileChooser(lastPath);
else
jfc = new JFileChooser("F:\\CaiJinJu\\my-things\\2019");
FileNameExtensionFilter filter = new FileNameExtensionFilter("wav 文件", "wav");
jfc.setFileFilter(filter);
jfc.setMultiSelectionEnabled(true);
int returnVal = jfc.showOpenDialog(null);
if (returnVal == JFileChooser.APPROVE_OPTION) {
String dirpath= jfc.getSelectedFile().getParent();
// 永久性保存文件夹打开对话框的目录
pref.put(key, dirpath);
}