簡體   English   中英

java jfilechooser只列出“hello * .txt文件”,沒有目錄更改

[英]java jfilechooser to list only “hello*.txt files” and no directory changing

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

}

要防止目錄更改,請使用:

File root = new File("c:\\data");
FileSystemView fsv = new SingleRootFileSystemView( root );
JFileChooser chooser = new JFileChooser(fsv);

請查看: http//tips4java.wordpress.com/2009/01/28/single-root-file-chooser/

至於文件名模式,您可以使用java正則表達式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM