java - 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。
解决方案
引起:java.lang.IllegalArgumentException:文件夹参数必须是有效的文件夹
传递给的值setInitialDirectory
必须是目录。似乎videoFile
是一个文件而不是目录/文件夹。
推荐阅读
- reactjs - 为导入的节点模块提供 React Context
- java - 当 JComboBox 项目更改时删除另一个 JComponent
- ruby-on-rails - 将数组移动到 Rails ActiveRecord 表中的方法
- javascript - 如何将所有页面添加到 cache.addAll
- python - 在括号之间找到一些东西
- sas - do loop 和 multi-set 语句中的 on one set 语句有什么区别?
- java - 为什么插件中从未使用过onCommand
- python - 在我的购物网络应用中显示购物车状态
- python - 如何用公式迭代一个列表?
- c - 当不知道将通过管道发送多少数据时,如何从管道中读取数据?