【问题标题】:Get all Extensions of the ExtensionFilters of a FileChooser获取 FileChooser 的 ExtensionFilters 的所有扩展
【发布时间】:2018-02-01 18:00:47
【问题描述】:

我想在最后添加一个ExtensionFilter(支持的文件)以及之前过滤器的所有扩展名到FileChooser。

这是我尝试过的:

FileChooser chooser = new FileChooser();

chooser.getExtensionFilters().addAll(
        new ExtensionFilter("Image Files", "*.png", "*.jpg"),
        new ExtensionFilter("Video Files", "*.mp4")), //And so on...

ArrayList<String> supportedExt = new ArrayList<String>();

for(int x = 0; x < chooser.getExtensionFilters().size(); x++) {

    // And here I get this:
    //The method addAll(Collection<? extends String>) in the type ArrayList<String> is not applicable for the arguments (FileChooser.ExtensionFilter)
    supportedExt.addAll(chooser.getExtensionFilters().get(x)); 
}

chooser.getExtensionFilters().add(new ExtensionFilter("supported Files", supportedExt));

如您所见,我收到此错误:

ArrayList类型中的addAll(Collection)方法不适用于参数(FileChooser.ExtensionFilter)

还有其他方法吗?

【问题讨论】:

    标签: java for-loop arraylist filechooser


    【解决方案1】:

    编译器告诉你所有你需要知道的。 chooser.getExtensionFilters() 返回FileChooser.ExtensionFilter 的列表,但您的supportedExt 被定义为接受String。

    你可能打算:

    supportedExt.addAll( chooser.getExtensionFilters().get(x).getExtensions() );

    【讨论】:

      【解决方案2】:

      这是您将supportedExt 声明为List&lt;String&gt; 的原因。 你应该在课堂上使用getExtensions() FileChooser.ExtensionFilter

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-06-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多