【发布时间】:2014-05-25 23:03:48
【问题描述】:
我正在开发一个使用 JavaFX 作为用户界面的 Java 应用程序。
当我在 Os X Mavericks 中使用 FileChooser 类从计算机硬盘加载 CSV 文件时,对话框会向我显示所有文件和文件夹,即使是隐藏的文件和文件夹也会产生很多噪音并且很难找到所需的文件。
这张截图说明了我在说什么:
我认为这可能更多是 OS X 问题,但我不明白如何修复,至少我不明白如何使用 JavaFX FileChooser 类修复它。
这是我的代码:
Stage stage = new Stage();
FileChooser fileChooser = new FileChooser();
fileChooser.setTitle("Open File");
fileChooser.getExtensionFilters().addAll(
new FileChooser.ExtensionFilter("Comma-Separated Values (CSV)", "*.csv")
);
fileChooser.setInitialDirectory(
new File(System.getProperty("user.home"))
);
File selectedFile = fileChooser.showOpenDialog(stage);
更新
这是用于打开文件的谷歌浏览器模式。
【问题讨论】:
-
嗨,戴夫,我认为问题与操作系统有关。您是否尝试过从另一个应用程序打开对话框。你也可以试试this。 JFileChooser 有一个属性来管理这种行为 setFileHidingEnabled 但我找不到 javafx 类似的东西,所以它可能需要操作系统行为。问候
-
嗨@elavicount,我已经检查了 JFileChooser 选项,你是对的,JavaFX 似乎没有类似的选项。所以我不知道,也许在 OS X 中不可行,因为过滤器在 Windows 上运行良好。
-
我建议向open-jfx mailing list 上的 JavaFX 开发人员询问此事。
-
今天我自己也遇到了这个问题。似乎它仅在初始化应用程序后第一次打开此对话框时发生,但此后每次都恢复正常。也许这是某种实例化问题,FileChooser 类需要更长的时间才能在实际框打开之前正确加载。