java - 如何在 JFileChooser 中设置默认的新目录名称?
问题描述
在 Java 程序中,我想显示一个 JFileChooser,用户只选择一个目录名称,将写入多个输出文件。所以 mychooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY),这很容易。但我想填写一个默认目录名。JFileChooser 似乎不允许我这样做。
我写了这个:
File newdir=new File(newdirname);
JFileChooser chooser=new JFileChooser(newdir);
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
int reply=chooser.showSaveDialog(Captions.home);
我期待它会显示 newdir 的父目录,并填写了 newdir 的完整路径。但是,如果 newdir 尚不存在,它会显示我的文档目录。
我还尝试使用chooser.setSelectedFile,它给出了不同的结果——它显示了父目录而不是文档目录——但仍然不是我想要的。
我不想在调用 JFileChooser 之前创建 newdir,因为用户可能不会采用默认值。我想我可以创建它,然后如果用户选择其他东西删除它,但这似乎很愚蠢。
有没有一种干净的方法可以做到这一点?
请注意,我不是在问如何设置默认文件名。我在问如何设置默认目录名称。我第一次尝试提出这个问题时,有人关闭了作为询问设置默认文件名的重复项。但是设置默认文件名的方法不适用于设置默认目录名。也许还有一些额外的技巧可以使它与目录名称一起使用。如果是这样,这就是我要问的。
解决方案
推荐阅读
- javascript - 如何扩展 FullCalendarDayGrid 以允许 `eventResize` where `allDay===false`
- android - Xamarin Android Webview:不允许加载本地资源“file:///android_asset/*.css”源:(1)?
- c# - 如何在平面列表中对我的 IQueryable 进行分层排序?
- php - 如何在 Laravel Passport 中获取用户的所有访问令牌?
- sql-server - 根据数据类型不同的 Web API ModelState 错误响应
- sql - 按别名列排序不起作用
- vue.js - 如何重定向到nuxt中的子路由?
- laravel - Laravel 子域接受其他甚至不指向项目的类似子域
- c# - 如何针对数据库表查询 C# 列表
- authentication - VS 代码:使用密码而不是令牌的 Jupyter 服务器连接