不断重新粉刷时canvas闪烁

我正在创建一个包含java.awt.Canvas的应用程序来显示一系列连接节点,如图中所示。 在编辑时,最后一个点用java.awt.geom.Line2D连接到鼠标光标,这样每次用户移动鼠标时都必须重新绘制它,这会在屏幕上产生一种非常恶心的 – 闪烁效果。

之前我做过这个,我知道解决方案非常简单并且不需要真正的硬代码,但要乱涂paint(g)repaint(g)update(g)方法,尽管如此,我不能设法解决它,并希望有人可以帮助我!

非常感谢!! 🙂

你需要做双缓冲来摆脱闪烁。 如果你google它的大量例子。

找到一个有更多信息的上一个问题 。 这是另一个例子 。

这是一个关于双缓冲的教程http://download.oracle.com/javase/tutorial/extra/fullscreen/doublebuf.html

这个想法基本上是你绘制到一个屏幕外的图像,然后一旦你完成绘制整个图像,你将该图像绘制到屏幕上。