java jfilechooser 仅列出 "hello*.txt files"并且不更改目录

标签 java swing jfilechooser filechooser

我正在尝试使用 JFileChooser 选择具有以下名称格式的文件:LS48*.drv。 同时我想限制用户仅查看特定目录,例如c:\data。所以我不希望用户能够更改目录或其他驱动器名称。 下面是我的代码段的基础,您能给我一些提示吗:

 m_fileChooser = new JFileChooser("c:\\data"); // looking for LS48*.drv files
  m_fileChooser.setFileFilter(new FileNameExtensionFilter("drivers(*.drv, *.DRV)", "drv", "DRV"));

最佳答案

您需要实现自己的 FileFilter 子类,并将其设置为文件选择器而不是 FileNameExtensionFilter 实例。

这个子类中的 accept 方法将类似于以下内容:

private static final Pattern LSDRV_PATTERN = Pattern.compile("LS48.*\\.drv");
public boolean accept(File f) {
    if (f.isDirectory()) {
        return false;
    }

    return LSDRV_PATTERN.matcher().matches(f.getName());

}

关于java jfilechooser 仅列出 "hello*.txt files"并且不更改目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10761677/

相关文章:

java - 匹配规则集与 Java 中的输入数据集

java - 确定数组列表是否已排序

java - 当主窗口最小化时,半透明的 JDialogs 消失

java - 将选定的文件调整为 JFileChooser 中的 FileFilter

java - 如何使用 JFileChooser 在 Ubuntu 中浏览映射驱动器中的文件

java - 将按钮/编辑文本添加到相对布局(膨胀)

java - 在android中,无法在警报管理器中注册多个事件

java - 在 netbeans 中着色 jtable 行

java - GroupLayout.Group 中 addGap(int) 的问题

java - JFileChooser 的 FileFilter 不起作用