有没有办法让java文件选择对话框记住最后一个目录?

2022-09-02 11:14:53

使用Java应用程序时,每次打开对话框时,起始目录始终是我的主目录。有没有办法让它记住上次使用的目录?或者,是否有“改进的”Java 文件选择对话框允许键入搜索或任何大多数其他应用程序文件选择对话框中的标准功能?

编辑:我认为发布的答案解决了编写java应用程序的问题,但不是针对用户的问题。也许用户不可能更改文件浏览器界面,但我想知道。为了以防万一,我脑海中有几个具体的例子(Amazon AWS上传器),但我在大多数使用文件浏览器的Java应用程序中观察到了这种行为。


答案 1

JFileChooser不记得它了。但是,Java提供了一个首选项API。

Preferences prefs = Preferences.userRoot().node(getClass().getName());
JFileChooser chooser = new JFileChooser(prefs.get(LAST_USED_FOLDER,
    new File(".").getAbsolutePath()));
int returnVal = chooser.showOpenDialog(null);
if (returnVal == JFileChooser.APPROVE_OPTION) {
    // do something
    prefs.put(LAST_USED_FOLDER, chooser.getSelectedFile().getParent());
}

答案 2

将文件选择器存储为类属性。当它重新打开时,将保留以下内容。

  1. 目录。
  2. 目录中用户滚动到的位置。
  3. 选定的文件筛选器。
  4. 大小。
  5. 屏幕上的位置。
  6. 解放军空军。
  7. ..

有没有办法让它记住上次使用的目录?

当然,如果您指的是在两次运行之间保留状态,则有许多替代形式的存储详细信息,以及存储它们的位置/方法。有关使用文件存储边界的示例,请参阅此答案JFrameProperties


也许用户无法更改文件浏览器界面。。

什么“用户”?您是指在应用程序中使用一个的开发人员吗?

也许你需要的是实现自己的文件选择器。如果是这种情况,您可以从 FileBro 代码开始。


推荐