当前位置: 首页 > 知识库问答 >
问题:

使用JavaFX中的FileChooser禁用隐藏文件

席安康
2023-03-14

我正在开发一个Java应用程序,使用JavaFX作为它的用户界面。

在OSX 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);

最新消息

这是谷歌浏览器打开文件的模式。

共有3个答案

酆意智
2023-03-14

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

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

>

终端中的命令行开关:

  • 显示隐藏-

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

陆文斌
2023-03-14

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

白智
2023-03-14

在看了资料来源之后<代码>文件选择器通过本机对话框实现,完全不可自定义。

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

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

例如,以下是它在Linux上的外观:

 类似资料:
  • 问题内容: 我的html中有这样的标签: 使用CSS我想用我的实际徽标替换文本。我已经通过调整标签大小并通过css将背景图像放到徽标中了,没有问题。但是,我不知道如何摆脱文本。我以前看过基本上是通过将文本从屏幕上推送来完成的。问题是我不记得在哪里看到它。 问题答案: 这是一种方法: 这是隐藏文本的另一种方式,同时避免了浏览器将创建的9999像素大框:

  • 我在JavaFX中有一个这样的表: @FXML私有表视图表EF; 例如,当我按下一个按钮或更改ComboBox中的值时,如何将它从GUI中完全隐藏起来,当我按下另一个按钮或再次更改ComboBox中的值后,如何使它再次可见? 编辑: Edit2:问题“JavaFX - setVisible不会”隐藏“元素”不是一个解决方案,因为对他来说,setInvisible是有效的,因为它使vBox不可见,只

  • 因此,目前我正在处理一个项目,其中我需要在一个方法中启动一个快速javafx窗口。由于我不想让类扩展应用程序,我的解决方案是创建一个扩展应用程序的内部类,并通过创建内部类的实例和调用内部类中的launch在方法中启动javafx窗口,如下所示。

  • 主要内容:打开文件,扩展过滤器,保存文件,示例允许用户导航文件系统并选择一个文件或文件夹。 类位于包中。 打开文件 文件选择器可用作打开文件对话框,用于选择单个文件或多个文件,或作为文件保存对话框。以下代码创建一个对象并设置其标题,然后显示给用户。 可以通过设置和属性来配置文件选择器对话框窗口。 扩展过滤器 可以设置扩展过滤器来确定在文件选择器中打开哪些文件。 保存文件 FileChooser API允许用户为由应用程序保存的文件指定文件名及

  • 我正在尝试编写使用SceneBuilder创建的按钮的功能。我在Scene builder中找到了“Code”部分,并设置了当我单击按钮时将启动的方法的名称(例如fileSelector)。在该方法中,我应该使用FileChooser变量(我需要从PC上获取一个图像并将其保存到一个“file”变量中)。 我复制了示例控制器骨架并将其粘贴到我的controller类中。现在我不知道如何实现该方法,因

  • 问题内容: 如何隐藏HBox中的项目,并使该项目使用的空间可用于其他项目。 在上面的代码中,当图例窗格隐藏时,我希望图表节点使用所有可用空间。 问题答案: 在调用legendPane.setVisible之前,请调用: 所述Node.managed特性防止一个节点在一个场景影响其他场景节点的布局。