Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 并行/并发加载AWT图像,然后替换占位符图像_Java_Multithreading_Image_Awt_Flying Saucer - Fatal编程技术网

Java 并行/并发加载AWT图像,然后替换占位符图像

Java 并行/并发加载AWT图像,然后替换占位符图像,java,multithreading,image,awt,flying-saucer,Java,Multithreading,Image,Awt,Flying Saucer,我使用的是一个纯粹基于java的XHTML渲染器,它本机集成到swing中。 为了显示图像,它提供了一个ReplacedElementFactory,它获取一个W3CDOM元素,并可以用ReplacedElement替换它 显示图像的实现是从ReplacedElementFactory返回一个java.awt.Image,通过ImageIO.read(..)加载,然后进行渲染。这意味着整个加载是EDT线程中的阻塞操作,在加载多个外部图像时冻结UI 我想知道如何返回表示“图像正在加载”的awt.I

我使用的是一个纯粹基于java的XHTML渲染器,它本机集成到swing中。 为了显示图像,它提供了一个ReplacedElementFactory,它获取一个W3CDOM元素,并可以用ReplacedElement替换它

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

我想知道如何返回表示“图像正在加载”的awt.Image,将加载分派到线程,然后,我的问题来了,用实际加载的图像替换返回的、已渲染的占位符imageisload。那么,有没有可能改变现有的awt.Image,然后强制它重新绘制/刷新/什么的

有什么建议吗?

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