不断重新粉刷时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
这个想法基本上是你绘制到一个屏幕外的图像,然后一旦你完成绘制整个图像,你将该图像绘制到屏幕上。