【问题标题】:JavaFX FileChooser ExtensionFilter not working properly- Highlighted FilesJavaFX FileChooser ExtensionFilter 无法正常工作 - 突出显示的文件
【发布时间】:2014-08-07 18:01:22
【问题描述】:

我正在尝试在 javafx 的文件选择器上使用扩展过滤器来将用户的选择限制为 pdf 和 tiff。这方面工作得很好,但是当我打开文件选择器时,会使用第一个添加的扩展过滤器并突出显示这些文件。这也很好,但是当我选择不同的过滤器时,突出显示的文件不会改变。如果我在 pdf 过滤器中,请选择一个 pdf 文件,然后更改过滤器,该文件将被禁用,但没有其他。我猜这是 javafx 的内部问题,但我想我会检查是否有其他人遇到此问题。我也在使用 osx,不确定这是否会影响这一点。这是我用于文件选择器的代码:

    try
                    {
                        FileChooser fileChooser = new FileChooser();
                        fileChooser.setTitle("select a file");

                        fileChooser.getExtensionFilters().addAll(
                                new FileChooser.ExtensionFilter("All Files", "*.jpeg", "*.pdf", "*.tiff"),
                                new FileChooser.ExtensionFilter("JPEG (*.JPEG, *.jpeg)", "*.jpeg", "*.JPEG"),
                                new FileChooser.ExtensionFilter("PDF (*.PDF, *.pdf)", "*.pdf","*.PDF"),
                                new FileChooser.ExtensionFilter("TIF (*.tif, *.tiff)", "*.tif", "*.tiff"));

                        File file = fileChooser.showOpenDialog(workbench.getStage());

我使用了包含我的大多数文件类型的过滤器,以便所有文件都突出显示开始。感谢您提前提供任何帮助。

【问题讨论】:

    标签: javafx file-extension filechooser


    【解决方案1】:

    我试过了,你的代码在这里工作,你可以试试FileChooserBuilder(),但我相信它可能不适用于你的情况,如果是这样,用MCVE更新你的问题,我会更新我的答案。

    注意 Unix GNU/Linux,因为它们的文件名在那里区分大小写,如果处理不当也可能会产生巨大影响。

    FileChooserBuilder fcb = FileChooserBuilder.create();
    FileChooser fc = fcb.title("Open Dialog").build();
    
    //Set extension filter
    FileChooser.ExtensionFilter extFilterALL = 
            new FileChooser.ExtensionFilter("All Files", "*.jpeg", "*.jpg", "*.pdf",
                    "*.tiff", "*.tif","*.JPG","*.JPEG", "*.PDF", "*.TIFF", "*.TIF");
    FileChooser.ExtensionFilter extFilterJPG = 
            new FileChooser.ExtensionFilter("JPG files (*.jpg)", "*.JPG", "*.jpg",
                                            "*.JPEG", "*.jpeg");
    FileChooser.ExtensionFilter extFilterPDF = 
            new FileChooser.ExtensionFilter("PDF files (*.pdf)", "*.PDF", "*.pdf");
    FileChooser.ExtensionFilter extFilterTIFF =
            new FileChooser.ExtensionFilter("TIFF files (*.tiff)", "*.TIF", "*.TIFF",
                                            "*.tif", "*.tiff");
    
    fc.getExtensionFilters().addAll(extFilterALL,extFilterJPG, extFilterPDF, extFilterTIFF);
    
    File selectedFile = fc.showOpenDialog(new Stage());
    

    【讨论】:

    • FileChooserBuilder 已被@弃用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-19
    • 2013-09-06
    • 2014-02-04
    • 1970-01-01
    • 2022-11-18
    相关资源
    最近更新 更多