[Java] 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);
					}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值