Я проверил ваши коды и изменил несколько для простого теста фильтрации файлов (распечатать выбранный файл на стандартный вывод) следующим образом, и он отлично работает для объекта AudioFilter
...
AudioFilter.java:
package file.test;
import java.io.File;
import javax.swing.filechooser.FileFilter;
public class AudioFilter extends FileFilter {
@Override
public boolean accept(File f) {
if (f.isDirectory()){
return true;
}
String extension = Utils.getExtension(f);
if (extension != null){
if (
(extension.equals(Utils.wav))
|| (extension.equals(Utils.aif))
|| (extension.equals(Utils.rmf))
|| (extension.equals(Utils.au))
|| (extension.equals(Utils.mid))
) {
return true;
}
else {
return false;
}
}
return false;
}
@Override
public String getDescription() {
return "wav, aif, rmf, au, mid";
}
static class Utils{
public final static String wav = "wav";
public final static String aif = "aif";
public final static String rmf = "rmf";
public final static String au = "au";
public final static String mid = "mid";
public static String getExtension(File f){
String ext = null;
String s = f.getName();
int i = s.lastIndexOf('.');
if (i > 0 && i < s.length() - 1){
ext = s.substring(i+1).toLowerCase();
}
return ext;
}
}
}
AudioFilterTest.java:
package file.test;
import java.io.File;
import java.io.FileNotFoundException;
import javax.swing.JFileChooser;
public class AudioFilterTest {
static AudioFilter audioFilter = new AudioFilter();
public static boolean openFile() throws FileNotFoundException {
JFileChooser jfc = new JFileChooser();
jfc.setDialogTitle("Open File");
jfc.setFileSelectionMode(JFileChooser.FILES_ONLY);
jfc.setCurrentDirectory(new File("."));
jfc.setFileFilter(audioFilter);
int result = jfc.showOpenDialog(null);
if (result == JFileChooser.CANCEL_OPTION){
return true;
}
else if (result == JFileChooser.APPROVE_OPTION){
File fFile = jfc.getSelectedFile();
String filestr = fFile.getAbsolutePath();
System.out.println(filestr);
}
return false;
}
/**
* @param args
*/
public static void main(String[] args) {
try {
openFile();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Полагаю, вам нужно проверить версию openFile()
метода ... esp. ваш readFile(File)
метод