如何使 JFileChooser 显示除 .huff 文件之外的所有类型的文件 [重复]

Posted

技术标签:

【中文标题】如何使 JFileChooser 显示除 .huff 文件之外的所有类型的文件 [重复]【英文标题】:How to make JFileChooser show every type of files except .huff files [duplicate] 【发布时间】:2021-02-27 03:59:12 【问题描述】:

我正在开发一个实现 Huffman 算法的 Java (Swing) 程序。它需要一个文件并将其压缩为 filename.huff 我必须让 JFileChooser 显示系统中的每个文件,但不是我压缩的具有 .huff 扩展名的文件

我没有尝试任何代码,因为我不知道该怎么做。但我知道如何制作一个仅显示特定类型文件的 FileFilter:

FileFilter filter = new FileNameExtensionFilter("Huffman File","huff");
JFileChooser j = new JFileChooser(System.getProperty("user.dir"));
j.setFileFilter(filter);
int returnVal = j.showOpenDialog(null);
if(returnVal == JFileChooser.APPROVE_OPTION) 
   txtBrowse.setText(j.getSelectedFile().getAbsolutePath());

那么,问题是如何让 FileFilter 显示除 .huff 文件之外的所有类型的文件?

【问题讨论】:

您将 FolNameExtension 过滤器设置为接受所有扩展名,并在您的过滤器代码中过滤掉压缩文件。 这就是我的观点。我可以制作一个只显示 .huff 文件的过滤器,但我不知道如何制作一个过滤器来显示除 .huff 之外的所有类型的文件:\ 【参考方案1】:

使用javax.swing.filechooser.FileFilter

..是 JFileChooser 用于过滤显示给用户的文件集的抽象类。请参阅 FileNameExtensionFilter 了解使用文件扩展名进行过滤的实现。 可以在JFileChooser 上设置FileFilter,以防止不需要的文件出现在目录列表中。有关简单文件过滤器的示例实现,请参阅 yourJDK/demo/jfc/FileChooserDemo/ExampleFileFilter.java。有关更多信息和示例,请参阅 Java 教程中的“如何使用文件选择器”部分。

注意粗体部分,它是在查看methods of JFileChooser 片刻后获得的,这是您在就 SO 提问之前应该做的事情。

下面是实现一个使用.txt作为要排除的文件的效果:

【讨论】:

如果它有助于解决问题,请accept the answer。

以上是关于如何使 JFileChooser 显示除 .huff 文件之外的所有类型的文件 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Java 9+ 中使用 JFileChooser 显示网络共享?

2K 显示器上的 JFileChooser 图标

使用 JFileChooser 过滤文件类型

JFileChooser - 设置固定文件名

取消在 JFileChooser 中选择文件而不关闭对话框

JFileChooser 作为 JDialog 父级