java jfilechooser只列出"hello*.txt文件",没有目录更改

C g*_*ics 2 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"));
Run Code Online (Sandbox Code Playgroud)

Hak*_*rce 6

您需要实现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());

}
Run Code Online (Sandbox Code Playgroud)