2013-05-30 29 views
0

我试图理解本教程,我已经查找过使用Java与Applets一起工作(http://www.javakode.com/applets/06-threads/),但我有一个问题。在JApplet类中使用带repaint()的线程导致它在绘画上“绘画”

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

可能会出现什么问题?这是我的目标吗?

回答

1

问题是,这个例子并不尊重油漆链。涂料的代表它的操作多个子方法,其中一个居然清除Graphics背景下,准备画...

的机制,画一个AWT组件不同,则画一个Swing组件

我会建议...

  1. 移动你自定义绘画分离组件,如JPanel。它是双重缓冲的,当组件重新粉刷时可以防止闪烁。
  2. 有通过Performing Custom Painting阅读并Painting in AWT and Swing
  3. 有通过Concurrency in Swing
  4. 使用JFrame,而不是阅读,它更简单...
+0

如果他正在写一个Applet告诉他使用一个JFrame是非-sensical。 JApplet是用于在浏览器中运行的swing应用程序的正确顶级容器。 – Michael

+1

许多pele开始编写小程序,因为这是他们在网上很好的教程。学习如何从JFrame入手并学习基本知识,而不必担心小应用程序带来的所有麻烦,而使用Java Web Start,我们不再需要仅限于applet。此外,你真的想做基于浏览器的Java开发,使用JavaFX – MadProgrammer

+0

我明白了,你是说开始用JFrame在桌面上学习,而不是从处理JApplet的怪癖开始。说得通。 – Michael