当前位置: 首页 > 知识库问答 >
问题:

JavaFX图片取消背景加载

籍辰沛
2023-03-14

简而言之;有没有办法取消/清除JavaFX图像的背景加载?

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

public Image(String url, boolean backgroundLoading)

来自Images类。

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

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

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);

共有1个答案

上官和惬
2023-03-14

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

取消此图像的背景加载。

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

 类似资料:
  • 问题内容: 我已经按照所有的教程讲完话了。我在CSS样式表中的身体内部指定了背景,但是页面仅显示空白的白色背景。图片与.html和.css页面位于同一目录中。本教程说 已弃用,所以我在CSS中使用 没有成功。这是整个CSS样式表: 问题答案: 这是另一个图片网址结果..工作正常…我只是放了一个图片路径..请检查一下..

  • 问题内容: 我为设置背景图片有一个小问题。 这是我在网站上获得的html: 这是CSS: 我不知道为什么按钮的背景仍然是白色。 问题答案: 令人惊讶的是,这里没有答案解决或提及实际问题。 该CSS选择器说:“给我一个元素与ID 里面 一个元素”,就像这样: 但是,您想要的是 带有* id 的元素。而选择器将是(请注意 button 和 #rock 之间缺少的空间)。 * 正如@Greg已经提到的:

  • 问题内容: 我正在创建一个GUI,尽管很简单,但我想让背景图像(2048 X 2048)填满整个窗口,并在左上角放置一个正方形,可以偶尔加载64 X 64图像。在此先感谢提供帮助的任何人:)编辑:我已经知道如何使JFrame设置大小,其图像加载需要帮助。 问题答案: 这是一个在JFrame中添加背景图像的简单示例: 点击这里了解更多信息

  • 问题内容: 这是我的代码,它确实找到了图像,所以这不是我关心的问题,我关心的是如何使该图像成为面板的背景。我正在尝试使用Graphics,但是我不起作用,有什么想法吗?请?? 问题答案: 您的代码中有一个错误。在取消引用之前,将其设置为该行。这肯定会抛出一个。与其声明自己的Graphics对象,不如使用传递给要用于绘画的方法的那个。要在Swing中执行此操作,您应该实现绘制图像的方法,如下所示:

  • 问题内容: 如果选择了该面板(单击该面板),则该面板的颜色为蓝色。另外,我在该面板上添加了一个小标志(图像),它表示所选面板之前已被选中。 因此,如果用户看到例如10个面板,其中有4个带有这个小标记,则他知道自己之前已经单击了这些面板。到目前为止,这项工作还不错。现在的问题是我无法显示小标志并使面板同时变为蓝色。 我使用css将面板设置为蓝色,使用设置背景图像。但是背景色似乎在图像上方,因此您看不

  • 问题内容: 我知道这个问题已经被问过很多次了,但是我觉得这个问题没有得到正确回答。 我想在Java GUI中将图像用作背景 我尝试了以下方法: 我是Java新手,请耐心等待 问题答案: 放一个 在您的jframe构造函数中