Java 如何捕获FileNameExtensionFilter并为其创建逻辑?
我有Java 如何捕获FileNameExtensionFilter并为其创建逻辑?,java,swing,file,jfilechooser,Java,Swing,File,Jfilechooser,我有JFileChooser并添加了2个文件扩展名过滤器,如下所示: openFileChooser = new JFileChooser(); openFileChooser.setCurrentDirectory(new File("D:/")); openFileChooser.setFileFilter(new FileNameExtensionFilter("OUT Files", "out")); openFileChooser.setFileFilter(new FileNameE
JFileChooser
并添加了2个文件扩展名过滤器,如下所示:
openFileChooser = new JFileChooser();
openFileChooser.setCurrentDirectory(new File("D:/"));
openFileChooser.setFileFilter(new FileNameExtensionFilter("OUT Files", "out"));
openFileChooser.setFileFilter(new FileNameExtensionFilter("PRN Files", "prn"));
如果我有.out文件,我的逻辑工作,但当我选择.prn文件时,.out文件的逻辑工作于.prn文件。我的问题是如何抓住哪种类型是,如果(.out files)-->make this(.prn files)-->some do?我不能清楚地理解您的问题,因此我将给您一个带有2个过滤器的文件选择器示例,这可能会对您有所帮助。以下
JFileChooser
允许用户仅选择Mp3和Mp4文件(在您的情况下是.out/.prn文件?)。阅读代码中的注释
import java.io.File;
import javax.swing.JFileChooser;
import javax.swing.filechooser.FileFilter;
public class FileChooserExample {
public static void main(String[] args) {
String home = System.getProperty("user.home");
File desktop = new File(home, "Desktop");
JFileChooser chooser = new JFileChooser(desktop);
// Add filter for mp3 files.
chooser.addChoosableFileFilter(new FileFilter() {
@Override
public String getDescription() {
return "Mp3 Files";
}
@Override
public boolean accept(File f) {
// Show only mp3 Files(which can be selected) and folders (which can be OPENED)
return isMp3(f) || f.isDirectory();
}
});
// Add filter for mp4 files.
chooser.addChoosableFileFilter(new FileFilter() {
@Override
public String getDescription() {
return "Mp4 Files";
}
@Override
public boolean accept(File f) {
// Show only mp4 Files(which can be selected) and folders (which can be OPENED)
return isMp4(f) || f.isDirectory();
}
});
// Only files allowed. If it is a directory, do not select it but open it to
// choose files
chooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
// Remove the "All files" filter. We want only our custom file filters to take
// action.
chooser.setAcceptAllFileFilterUsed(false);
if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
File selectedFile = chooser.getSelectedFile();
if (isMp3(selectedFile)) {
System.out.println("This is an mp3 file, and i wanna dance.");
} else if (isMp4(selectedFile)) {
System.out.println("This is an mp4 file, and i wanna grab pop corn.");
}
}
}
private static boolean isMp4(File f) {
return f.getName().toLowerCase().endsWith(".mp4");
}
private static boolean isMp3(File f) {
return f.getName().toLowerCase().endsWith(".mp3");
}
}
如果答案不符合
If(file.getName().toLowerCase().endsWith(“.out”)
一旦选择了文件,则。。我不明白问题是什么。