并行/同时加载AWT-Image,然后替换占位符图像

时间:2012-01-22 13:28:02

标签: java multithreading image awt flying-saucer

我正在使用FlyingSaucer,这是一个纯粹基于java的XHTML-Renderer,它本身已集成到swing中。 为了显示图像,它提供了一个ReplacedElementFactory,它获取了一个W3C-DOM-Element,可以用ReplacedElement替换它。

显示图像的实现是从ReplacedElementFactory返回一个java.awt.Image,它通过ImageIO.read(..)加载,然后呈现。这意味着整个加载是EDT线程中的阻塞操作,在加载多个外部图像时冻结UI ...

我想知道如何返回一个表示“图像正在加载”的awt.Image,将加载调度到一个线程然后,我的问题就到了,用实际的替换返回的,已经呈现的Placeholder-ImageIsLoading ,加载图像。那么有没有可能改变现有的awt.Image,然后强制它重绘/刷新/其他什么?

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我已经构建了一个自定义的“图像扩展组件”并在加载时重新绘制图像,并另外调用FlyingSaucer的重新布局方法