JEdi​​torPane异步图像下载问题

时间:2011-08-05 15:12:35

标签: java multithreading swing jeditorpane

我正在尝试创建简单的Swing应用程序,其中包含很少的JEditorPanes。每个JEditorPane都包含内部带有html标签的文本。而且一些窗格包含带有标签<img src='http://some.url' />的html,这意味着图像可能位于Web中的某个位置。 问题是 - 如果其中一个图片网址不可用 - 我的所有JEditorPanes和整个应用程序都挂了。(我在自己的线程中构建JEditorPanes,并在构建之后使用{将它们放入主框架中{1}})

我相信图像异步下载到JEditorPanes,有没有能力杀死这些狡猾的图像下载线程?

或许,有更好的解决方案?

由于

P.S。 使用SwingWorker。问题是 - 如果某个图片网址不可用 - 所有JEditorPanes都无法下载他们的图片。实际上他们并没有挂,但无法下载图片。为什么呢?

P.P.S。

后台主题:

SwingUtilities.invokeLater(...)

2 个答案:

答案 0 :(得分:2)

考虑使用SwingWorkerexample,或者可以从Runnable #Thread启动BackGround Task(输出必须包装到invokeLater()

答案 1 :(得分:1)

我同意mKorbel的观点是后台线程(1+对他的回答),而SwingWorker是一种方法。如果你需要同时运行多个后台线程,那么在使用SwingWorker时要小心,因为最近有一个错误导致所有SwingWorkers只使用一个线程。在这种情况下,请考虑使用Executors / Futures。