5

我想保存一个文件。我用这个。

FileChooser fileChooser = new FileChooser();
File file = fileChooser.showSaveDialog(null);

但是在对话框中我想为文件建议一个名称,以便用户只为给定文件选择一个目录。文件的名称是已知的。所以我想建议该文件名。

谢谢你。

4

3 回答 3

8

这现在在 Javafx 2.2.45(现在与 java 7.0_45 捆绑)中得到修复,您可以使用以下 fileChooser 属性 setInitialFilename 执行 OP 建议的操作,如下所示:

        FileChooser myFile = new FileChooser();
        myFile.setInitialFileName("Whatever_file_I_want.coolFile");

现在,我认为无论如何都不会阻止用户选择不同的文件,但至少这会给他们一个您希望他们选择的默认值。

于 2014-01-14T17:00:56.280 回答
4

提供初始文件名 - 它需要通过本机调用将您的字符串(初始名)传输到本机文件选择器的调用。这是一件复杂的事情,您可以查看有关其实施的这些问题:

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 发布,或者使用早期访问版本。或者,使用您自己的文件选择器实现。

于 2013-03-09T12:47:01.583 回答
1

这是一个对我有用的解决方法:

您可以使用 javafx.stage.DirectoryChooser 为要保存的文件选择一个目录,并在保存后在该目录中创建一个具有默认名称和扩展名的新文件。

DirectoryChooser dc = new DirectoryChooser();
File file = dc.showDialog(null);
if (file != null) {
            file = new File(file.getAbsolutePath() + "/dafaultFilename.extension");}
于 2013-05-27T13:03:21.570 回答