JavaFX ExtensionFilter在ubuntu中无法正常工作

时间:2013-08-03 21:56:02

标签: javafx-2 javafx filechooser

我在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的文件。它显示了一些,但我无法弄清楚它为什么这样做。

1 个答案:

答案 0 :(得分:4)

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

在Windows中,没有问题,因为它不区分大小写,我的意思是,one.jpg与one.JPG相同。

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

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

希望有所帮助