在JApplet类中使用带有repaint()的线程会导致它在绘制上“绘制”

时间:2013-05-30 06:03:47

标签: java multithreading repaint japplet

我正在尝试理解本教程,我已经查找了使用Java(http://www.javakode.com/applets/06-threads/)的Applet,但我遇到了问题。

每当我使用线程repaint()时,之前生成的图像都不会消失。它停留在屏幕上并绘制新图像。但这只发生在我使用JApplet类时,但是当我使用Applet类时,它可以正常工作。

可能出现什么问题?这是我的意思吗?

1 个答案:

答案 0 :(得分:1)

问题是,该示例不尊重油漆链。 Paint将它的操作委托给许多子方法,其中一个方法实际上清除Graphics上下文,准备好绘画......

绘制AWT组件的机制与绘制Swing组件

不同

我建议......

  1. 将自定义绘画移动到单独的组件,例如JPanel。它是双缓冲的,可以在重新绘制组件时防止闪烁。
  2. 仔细阅读Performing Custom PaintingPainting in AWT and Swing
  3. 阅读Concurrency in Swing
  4. 使用JFrame代替,更简单......