【问题标题】:Disable hidden files using FileChooser from JavaFX使用 JavaFX 中的 FileChooser 禁用隐藏文件
【发布时间】: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 类需要更长的时间才能在实际框打开之前正确加载。

标签: java macos javafx


【解决方案1】:

您是否尝试过在 OS X 机器上隐藏 Finder 程序中的所有隐藏文件?那么:不使用JavaFX,而是使用程序Finder?

【讨论】:

  • 我不明白,为什么要用finder隐藏文件?也许我不明白你的意思。
  • 我假设 JavaFX 会启动一些 Finder 实例,让您选择一个文件(这使它看起来/感觉与实际的 Finder 应用程序相同),而不是自己编写。如果确实如此(我不是 100% 确定),那么您对 ​​Finder 程序的偏好(例如隐藏文件)将反映 JavaFX 文件选择器的行为方式。只是想帮忙
  • 哦,我明白了,但不,它不是那样工作的。谢谢你。
【解决方案2】:

查看资源后... FileChooser 是在本机对话框上实现的,完全不可定制。

所以,不,您不能强制对话框显示/隐藏隐藏文件。

FileChooser 对话框中应该有一个上下文菜单项来显示/隐藏它们, 但您无法从应用程序控制此选项

例如,这是它在 Linux 上的样子:

【讨论】:

    【解决方案3】:

    我知道这已经晚了,但没有一个答案能真正解释 MacOS 的情况。

    JavaFX 中的打开/保存对话框是本机对话框(实现为“表格”)。正如 Finder 没有“显示隐藏文件”选项一样,这些对话框也没有。有几种解决方案:

    1. 相对未知的键盘快捷键,从 Mavericks 开始可用:View Hidden Files in Mac Open and Save Dialog Boxes。 (我只是偶然发现了这个;我一直使用下面的#2。)

    2. 终端中的命令行开关:

      • 显示隐藏 -> defaults write com.apple.finder AppleShowAllFiles YES,或
      • 隐藏 -> defaults write com.apple.finder AppleShowAllFiles NO

    您的用户必须充分了解这些替代方案;您不能自定义本机打开/保存对话框来提供一个按钮来执行此操作。

    【讨论】:

      猜你喜欢
      • 2019-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-23
      • 2019-06-14
      • 2023-01-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多