【问题标题】:JavaFX ExtensionFilter not working properly in ubuntuJavaFX ExtensionFilter 在 ubuntu 中无法正常工作
【发布时间】:2013-08-03 21:56:02
【问题描述】:

我在 javafx 中创建了一个小型应用程序,其中必须选择 JPG、PNG 或 GIF 图像才能使用。这是用于过滤文件的代码:

FileChooserBuilder fcb = FileChooserBuilder.create();
FileChooser fc = fcb.title("Open Dialog").initialDirectory(new File(currentDir)).build();

//Set extension filter
FileChooser.ExtensionFilter extFilterJPG = new FileChooser.ExtensionFilter("JPG files (*.jpg)", "*.JPG");
FileChooser.ExtensionFilter extFilterPNG = new FileChooser.ExtensionFilter("PNG files (*.png)", "*.PNG");
FileChooser.ExtensionFilter extFilterGIF = new FileChooser.ExtensionFilter("GIF files (*.gif)", "*.GIF");

fc.getExtensionFilters().addAll(extFilterJPG, extFilterPNG, extFilterGIF);

selectedFile = fc.showOpenDialog(link);

此代码在 Windows 7 中运行良好。但在 Ubuntu 中使用它时,它并没有显示所有带有 JPG、PNG 或 GIF 的文件。它显示了一些,但我无法完全弄清楚它为什么会这样。

【问题讨论】:

    标签: javafx-2 javafx filechooser


    【解决方案1】:

    Ubuntu 和类 unix 系统区分大小写。所以它正在过滤“*.JPG”,也许你有带有大写或小写扩展名的文件。因此,对于具有小写扩展名的文件,该文件将不匹配。

    在windows中没有问题,因为它不区分大小写,我的意思是,one.jpg和one.JPG是一样的。

    所以要修复它,在 ExtensionFilter 的构造函数中添加小写的扩展。

    FileChooser.ExtensionFilter extFilterJPG = new FileChooser.ExtensionFilter("JPG files (*.jpg)", "*.JPG", "*.jpg");
    

    希望对你有帮助

    【讨论】:

    • 请注意,这不会涵盖像 .JpG 这样的混合大小写,我找不到不区分大小写的 ExtensionFilter 的方法
    猜你喜欢
    • 1970-01-01
    • 2023-04-07
    • 2015-04-13
    • 2016-10-17
    • 2013-12-21
    • 2022-12-17
    • 2021-04-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多