0

JFileChooserのファイルフィルターを設定しようとしています。これは私のコードです:

JFileChooser picker= new JFileChooser();
picker.setFileFilter(new FileNameExtensionFilter("txt"));
int pickerResult = picker.showOpenDialog(getParent());
if (pickerResult == JFileChooser.APPROVE_OPTION){
System.out.println("This works!");
}
if (pickerResult == JFileChooser.CANCEL_OPTION){
System.exit(1);
}

プログラムを実行すると、ファイルチューザーが表示されますが、.txtファイルを選択できません。代わりに、コンソールに次のように表示されます。

Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: Extensions must be non-null and not empty

これを修正するにはどうすればよいですか?

4

2 に答える 2

1

2番目のパラメーターとして少なくとも1つの拡張機能を追加する必要があります。APIから:

FileNameExtensionFilter(String description, String... extensions) 

Parameters:
description - textual description for the filter, may be null
extensions - the accepted file name extensions
于 2011-02-03T00:18:02.587 に答える
0

また、特定のファイル拡張子が必要で、フォルダをナビゲートする場合は、次のことを試すことができます。

JFileChooser fc = new JFileChooser(path);
fc.setFileSelectionMode(JFileChooser.FILES_ONLY);
fc.addChoosableFileFilter(new FileFilter () {

    @Override
    public String getDescription() {
        return "DAT Files";
    }

    @Override
    public boolean accept(File f) {
        if (f.isDirectory())
            return true;
        return f.getName().endsWith(".dat");
    }

});
fc.setAcceptAllFileFilterUsed(false);
于 2015-10-29T15:58:35.290 に答える