我有一个关于在Java(SWT)中绘制动画的问题。 我尝试绘制一些过程的动画。 当我使用canvas.redraw()程序时,首先擦除已绘制的所有内容,然后再次绘制。 我的程序每个时间步骤绘制大约1000个矩形(这个数量很大是必要的)因此动画看起来并不平滑 - 它一直闪烁。 有没有办法让它看起来更平滑,例如在没有擦除旧物体的情况下绘制新物体(无论如何看起来会更好)?
答案 0 :(得分:1)
进行自定义绘画时闪烁的解决方案是使用双缓冲。 SWT Canvas对象具有内置的双缓冲,通过在构造函数中为样式添加标志来使用它:
Canvas myCanvas = new Canvas (parentComposite, SWT.DOUBLE_BUFFERED);