我正在尝试使用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());

}

10-07 16:07