Java Swing JFileChooser筛选器不适用于sqlite

Java Swing JFileChooser筛选器不适用于sqlite,java,sqlite,jfilechooser,Java,Sqlite,Jfilechooser,我从中复制并修改了一个示例。我把它改成了sqlite。我正在查看包含.app、.jar和.sqlite文件的目录。.jar文件是灰色的,但是.sqlite和.app文件是可选的。为什么过滤器没有使.app文件不可选择?我只希望.sqlite是可选择的。我在MacOSX上运行这个 package org.todivefor.filechooser4; import javax.swing.JFileChooser; import javax.swing.filechooser.FileNameE

我从中复制并修改了一个示例。我把它改成了sqlite。我正在查看包含.app、.jar和.sqlite文件的目录。.jar文件是灰色的,但是.sqlite和.app文件是可选的。为什么过滤器没有使.app文件不可选择?我只希望.sqlite是可选择的。我在MacOSX上运行这个

package org.todivefor.filechooser4;

import javax.swing.JFileChooser;
import javax.swing.filechooser.FileNameExtensionFilter;
import javax.swing.filechooser.FileSystemView;

public class FileChooser4 {

    public static void main(String[] args) {

        JFileChooser jfc = new JFileChooser(FileSystemView.getFileSystemView().getHomeDirectory());
        jfc.setDialogTitle("Select DB");
        jfc.setAcceptAllFileFilterUsed(false);
        FileNameExtensionFilter filter = new FileNameExtensionFilter("SQLite DB", "sqlite");
        jfc.addChoosableFileFilter(filter);

        int returnValue = jfc.showOpenDialog(null);
        if (returnValue == JFileChooser.APPROVE_OPTION) {
            System.out.println(jfc.getSelectedFile().getPath());
        }
    }
}
编辑:


首先,我不明白这是怎么回事。我认为通过使用sqlite指定过滤器,如果没有.sqlite扩展名,我将看不到任何东西。在我的测试中,我发现我可以看到所有扩展名的文件,但只能选择带有.sqlite的文件。我在Mac OS X和Windows上都尝试了上面的代码,并看到了不同的结果。在Windows上,我看到了.app和.sqlite文件,但我只能选择.sqlite文件。在MacOSX上,我看到了.app和.sqlite文件,可以选择其中一个。我不知道这是为什么,但与外观和感觉有关。在Windows和Mac上,我都没有指定外观,所以我想我得到了默认值。在Windows上,.app文件显示为文件夹。而在Mac上,它们显示为文件(仍然不知道为什么它们是可选的)。我正在使用它的应用程序,我控制L&F,它以我期望的方式工作,除了Mac OS X L&F,我可以在其中选择.app扩展名文件。

我在Windows上,您发布的代码似乎正常工作。这可能是Java的一个bug。您的Java是最新的吗


我将此作为答案发布,因为评论不能包含图像。我的java是最新的。您可以选择一个.jar文件吗?您可以将图像上载到某个网站,并在评论中添加指向该图像的链接。这是发布包含图像的评论的一种方法。@PeterReam我不能,因为它们没有出现。我这边的过滤器工作正常。