如何使用JFileChooser.showSaveDialog(...)设置建议的文件名?

2022-08-31 15:08:43

似乎缺少一个功能:一种在保存文件时建议文件名的方法(通常被选中的东西,以便在用户开始键入时将其替换)。JFileChooser

有没有办法解决这个问题?


答案 1

如果我正确理解你,你需要使用这个方法。setSelectedFile

JFileChooser jFileChooser = new JFileChooser();
jFileChooser.setSelectedFile(new File("fileToSave.txt"));
jFileChooser.showSaveDialog(parent);

该文件不需要存在。

如果传递具有绝对路径的文件,将尝试将自身定位在该目录中(如果存在)。JFileChooser


答案 2

setSelectedFile不适用于上面提到的目录,解决方案是

try {
    FileChooserUI fcUi = fileChooser.getUI();
    fcUi.setSelectedFile(defaultDir);
    Class<? extends FileChooserUI> fcClass = fcUi.getClass();
    Method setFileName = fcClass.getMethod("setFileName", String.class);
    setFileName.invoke(fcUi, defaultDir.getName());
} catch (Exception e) {
    e.printStackTrace();
}

不幸的是,它不包含在UI界面中,因此需要动态调用它。仅在 Mac 上进行了测试。setFileName


推荐