簡體   English   中英

使用jfilechooser java動態文件擴展名過濾

[英]Dynamic file extension filtration using jfilechooser java

我正在使用FileNameExtensionFilter函數來過濾jfilechooser文件名,但擴展名的輸入參數為String類型。 我想從文本文件中讀取所有擴展名。 filter在構造函數中,並且我正在開發NetBeans形式的記事本類型的應用程序。 解決這個問題或為這個問題提供更好的解決方案,我只想使用jfilechooser功能來選擇和過濾文件

提前致謝

這是代碼。

///////////////FILE FILTER
String str= ""txt","abc","xyz","wxy"; //all extensions from TXTfile

public MainFrame(){
    initComponents();
    fileChooser=new JFileChooser();
    FileNameExtensionFilter filter = new FileNameExtensionFilter("TEXTFILES",str,"text");
    fileChooser.setFileFilter(filter);
}

////////////////////////  FILE READER
String readFile() throws IOException {
BufferedReader br = new BufferedReader(new FileReader("ext.txt"));
try {
    StringBuilder sb = new StringBuilder();
    String line = br.readLine();

    while (line != null) {
        sb.append(line);
        sb.append("\n");
       line = br.readLine();
    }
    return sb.toString();
} finally {
    br.close();
}

根據JLS, FileNameExtensionFilter方法采用“字符串...擴展名”,所以我建議您在代碼中進行修改,

// all extensions from TXTfile
String[] extensions= {"txt","abc","xyz","wxy"}; 

JFileChooser fileChooser = new JFileChooser();
FileNameExtensionFilter filter = new FileNameExtensionFilter("TEXTFILES",extensions);
fileChooser.setFileFilter(filter);

int returnVal = chooser.showOpenDialog(parent);
if(returnVal == JFileChooser.APPROVE_OPTION) {
System.out.println("You chose to open this file: " 
+fileChooser.getName(new File("ext.txt")));//or you can use getSelectedFile() that  user has choosen.
    }

暫無
暫無

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

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