使用线程在Java中使用BufferedImage绘制线条

时间:2012-06-26 09:49:25

标签: java multithreading swing thread-safety bufferedimage

我有一个BufferedImage,它设置为JLabel,而JLabel又是JPanel的一部分。在单击按钮时,我在BufferedImage上绘制了一些线条,随后在面板上进行了更新。早些时候,我一个接一个地绘制每一行,这没关系,但对我的目的而言是时间效率低下的。为了提高效率,我将BufferedImage的坐标分为4个部分,并使用线程绘制每个部分的线条。现在,在执行完成后,图像的某些随机部分没有绘制线条。这是为什么?是使用Graphics2D绘制不是线程安全的吗?

1 个答案:

答案 0 :(得分:3)

  

使用Graphics2D绘图是不是线程安全的吗?

是的,Swing(并且在其中绘图)绝对不是线程安全的,并且您正在经历的渲染错误肯定是因为它。

有关详细信息,请参阅以下教程: http://docs.oracle.com/javase/tutorial/uiswing/concurrency/dispatch.html

根据mKorbel的评论,请添加SSCCE以获得更具体的建议。