web-dev-qa-db-ja.com

JFileChooserのFileFilter

JFileChooserを制限して、mp3ファイルのみを選択します。ただし、次のコードはすべてのファイルタイプを許可します。

FileFilter filter = new FileNameExtensionFilter("MP3 File","mp3");
fileChooser.addChoosableFileFilter(filter);
fileChooser.showOpenDialog(frame);
File file = fileChooser.getSelectedFile();
13
Tanay

fileChooser.setFileFilter(filter)の代わりにfileChooser.addChoosableFileFilter(filter);を試して使用してください

19
Paul Samsotha

Mp3ファイルのみが必要な場合:

import javax.swing.JFileChooser;
import javax.swing.filechooser.FileNameExtensionFilter;

public class SalutonFrame {

    public static void main(String[] args) {
        JFileChooser fileChooser = new JFileChooser();
        fileChooser.setAcceptAllFileFilterUsed(false);
        FileNameExtensionFilter filter = new FileNameExtensionFilter("MPEG3 songs", "mp3");
        fileChooser.addChoosableFileFilter(filter);
        fileChooser.showOpenDialog(null);

    }
}
8
Samuel

試してください:

FileFilter filter = new FileNameExtensionFilter("My mp3 description", "mp3");

最初の引数はFileNameExtensionFilterの単なる説明であり、2番目の引数はvar argsであるため、そのままにしておくことができます。これは、実質的にフィルターがないことを意味します。

8
Amir Afghani

fileChooser.addChoosableFileFilter(filter)は、ユーザーが選択可能なフィルターのリストにカスタムファイルフィルターを追加します。デフォルトでは、ユーザーが選択可能なフィルターのリストにはAccept Allフィルターが含まれており、ユーザーはすべての非表示でないファイルを表示できます

呼び出す必要があります:fileFilter.setAcceptAllFileFilterUsed(false)

setAcceptAllFileFilterUsed(boolean)は、AcceptAll FileFilterが選択可能なフィルターリストで使用可能な選択肢として使用されるかどうかを決定します。 If falseの場合、AcceptAllファイルフィルターは使用可能なファイルフィルターのリストから削除されます。 trueの場合、AcceptAllファイルフィルターがアクティブに使用されるファイルフィルターになります。

4
Sage

このコードスニペットは次の場合に役立ちます。

JFileChooser jfc=new JFileChooser(System.getProperty("user.dir","."));

FileFilter ff = new FileFilter(){
    public boolean accept(File f){
        if(f.isDirectory()) return true;
        else if(f.getName().endsWith(".mp3")) return true;
            else return false;
    }
    public String getDescription(){
        return "MP3 files";
    }
};

jfc.removeChoosableFileFilter(jfc.getAcceptAllFileFilter());
jfc.setFileFilter(ff);

if(jfc.showDialog(frame,"openG")==JFileChooser.APPROVE_OPTION){
        String fileName = jfc.getSelectedFile().getPath();
}
2
imanis_tn