Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何捕获FileNameExtensionFilter并为其创建逻辑?_Java_Swing_File_Jfilechooser - Fatal编程技术网

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
允许用户仅选择Mp3Mp4文件(在您的情况下是.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”)
一旦选择了文件,则。。我不明白问题是什么。