【发布时间】:2014-11-12 12:22:11
【问题描述】:
我想要一个具有 2 个选项的文件过滤器,一个显示所有文件,另一个显示特定扩展名。
具体的扩展名应该是默认选择的。
我两次使用相同的 JFileChooser,第一次显示 .fas 文件,第二次显示 .xls 文件。
现在我正在使用此代码,但由于某些原因,它不会覆盖以前的文件扩展名。如果您回收 JFileChooser,那么这里的许多答案都有类似的代码和完全相同的问题。
第一部分,一切正常
fileChooser.setFileFilter(new javax.swing.filechooser.FileFilter() {
@Override
public boolean accept(File file) {
return file.isDirectory() || file.getAbsolutePath().endsWith(".fas");
}
@Override
public String getDescription() {
return "Fasta";
}
});
// more modern API, same result
// fileChooser.setFileFilter(new FileNameExtensionFilter("File fasta", "fas"));
第二部分。这用于同一 JFileChooser 的第二次“打开”。它似乎只是添加了一个过滤器(选择 .fas 文件的选项仍然存在)。
// delete name of previously selected file
File currentDirectory = fileChooser.getCurrentDirectory();
fileChooser.setSelectedFile(new File(""));
fileChooser.setCurrentDirectory(currentDirectory);
// set new file filter
fileChooser.setFileFilter(new javax.swing.filechooser.FileFilter() {
@Override
public boolean accept(File file) {
return file.isDirectory() || file.getAbsolutePath().endsWith(".xls");
}
@Override
public String getDescription() {
return "Excel 97";
}
});
// more modern API, same result
// fileChooser.setFileFilter(new FileNameExtensionFilter("Excel 97", "xls"));
【问题讨论】:
标签: java jfilechooser filefilter