首页 > 解决方案 > FXML 文件选择器无法重新打开

问题描述

我使用 FXML 在 Java 中按下按钮时运行以下代码

void run(){
            FileChooser fc = new FileChooser();
            FileChooser.ExtensionFilter extFilter = new FileChooser.ExtensionFilter("MP4 files (*.mp4)", "*.mp4");
            fc.getExtensionFilters().add(extFilter);
            fc.setInitialDirectory(videoFile);
            videoFile = fc.showOpenDialog(stage);

}

我第一次调用此代码时,它按预期工作,在 Windows 中打开一个文件选择对话框并返回文件的句柄,但是如果我尝试使用相同的代码打开一个新文件,则不会发生任何事情并引发此错误。

引起:java.lang.IllegalArgumentException:文件夹参数必须是有效的文件夹

这似乎表明它立即无法打开对话框。有谁知道这背后的原因和可能的解决方法?

编辑:

我不正确地为将来可能需要答案的任何人调用 setInitialDirectory。

标签: javajavafxfxml

解决方案


引起:java.lang.IllegalArgumentException:文件夹参数必须是有效的文件夹

传递给的值setInitialDirectory必须是目录。似乎videoFile是一个文件而不是目录/文件夹。


推荐阅读