我想保存一个文件。我用这个。
FileChooser fileChooser = new FileChooser();
File file = fileChooser.showSaveDialog(null);
但是在对话框中我想为文件建议一个名称,以便用户只为给定文件选择一个目录。文件的名称是已知的。所以我想建议该文件名。
谢谢你。
我想保存一个文件。我用这个。
FileChooser fileChooser = new FileChooser();
File file = fileChooser.showSaveDialog(null);
但是在对话框中我想为文件建议一个名称,以便用户只为给定文件选择一个目录。文件的名称是已知的。所以我想建议该文件名。
谢谢你。
这现在在 Javafx 2.2.45(现在与 java 7.0_45 捆绑)中得到修复,您可以使用以下 fileChooser 属性 setInitialFilename 执行 OP 建议的操作,如下所示:
FileChooser myFile = new FileChooser();
myFile.setInitialFileName("Whatever_file_I_want.coolFile");
现在,我认为无论如何都不会阻止用户选择不同的文件,但至少这会给他们一个您希望他们选择的默认值。
提供初始文件名 - 它需要通过本机调用将您的字符串(初始名)传输到本机文件选择器的调用。这是一件复杂的事情,您可以查看有关其实施的这些问题:
http://javafx-jira.kenai.com/browse/RT-16111(主要一)
http://javafx-jira.kenai.com/browse/RT-24588
http://javafx-jira.kenai.com/browse/RT-24612
它们都有修复版本 lombard,所以,它们在 JDK 8 中是固定的。
因此,您可以指定文件的初始文件名,从 JDK 8 开始(您可以访问它,下载 JDK 早期访问)。
最近,我测试了这个功能,它正在工作。
有一个方法 setInitialName() 或类似的东西。
而且,正如我所提到的,它是一件复杂的事情,你不可能自己实现它(直到你能够构建 jfx)。
因此,决定 - 等到 JDK8 发布,或者使用早期访问版本。或者,使用您自己的文件选择器实现。
这是一个对我有用的解决方法:
您可以使用 javafx.stage.DirectoryChooser 为要保存的文件选择一个目录,并在保存后在该目录中创建一个具有默认名称和扩展名的新文件。
DirectoryChooser dc = new DirectoryChooser();
File file = dc.showDialog(null);
if (file != null) {
file = new File(file.getAbsolutePath() + "/dafaultFilename.extension");}