【问题标题】:JavaFX Image cancel background loadingJavaFX Image取消后台加载
【发布时间】:2019-05-27 00:19:05
【问题描述】:

简而言之;有没有办法取消/清除 JavaFX 图片的后台加载?

在我的代码中,我加载了一堆图像。出于性能原因,它们在后台加载

public Image(String url, boolean backgroundLoading)

来自图像类。

问题在于,有时,用户交互会导致程序在加载先前的图像之前更新图像列表(而不需要先前的图像)。那时我想取消以前的后台加载。现在,它仍然会加载以前的图像,导致实际需要的图像加载时间更长。

请参见下面的示例。当我在旧源完成处理之前获得新的源流时,内容开始显示图像需要更长的时间,因为它仍在加载以前的源(至少这是我的猜测)。

List<ImageView> images = sources.map(source -> {
    ImageView iv = new ImageView(new Image(source.toUri().toString(), true));
    iv.setPreserveRatio(true);
    return iv;
}).collect(Collectors.toList());
content.getChildren().setAll(images);

【问题讨论】:

    标签: java image javafx loading


    【解决方案1】:

    您可以使用Image.cancel 取消Image 的后台加载。

    取消此图片的后台加载。

    如果此图像未在后台加载或加载已完成,则无效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-03
      • 2013-11-10
      • 2021-09-22
      相关资源
      最近更新 更多