Справка JFileChooser - PullRequest
       11

Справка JFileChooser

0 голосов
/ 03 февраля 2011

Я пытаюсь установить фильтр файлов для моего 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

Как мне это исправить?

Ответы [ 2 ]

1 голос
/ 03 февраля 2011

Вам нужно добавить хотя бы одно расширение в качестве второго параметра.Из API:

FileNameExtensionFilter(String description, String... extensions) 

Parameters:
description - textual description for the filter, may be null
extensions - the accepted file name extensions
0 голосов
/ 29 октября 2015

Также, если вы хотите определенные расширения файлов и перемещаться по папкам, вы можете попробовать это:

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);
...