(Re)在画布上画图

问题描述:

我即将编写自己的模拟时钟SWT。我设法在一个时间点绘制它,一切都很好,直到控件重新绘制。
看来,“旧图纸”通过绘图事件是持久的,我无法找到一种方法来删除它们。理想将是对我在Canvas上绘制的不同形状的某种参考,以便我可以单独删除它们,但是可以清除完整画布以便我可以再次从头开始绘制所有内容的方法也值得赞赏。(Re)在画布上画图

的磺酰基的方法,我发现是处置当前画布上,然后创建完全相同的位置,而不是一个新的,但是这似乎是资源,我一个巨大的浪费的东西,简单...

+0

我们可以看到一些代码吗? –

刚在绘画事件开始时用背景颜色填充Canvas

public void paintControl(PaintEvent event) { 

    GC gc = event.gc; 

    gc.setBackground(... background color ...); 

    Rectangle fillRect = getClientArea(); 

    gc.fillRectangle(fillRect); 

    ... continue drawing 
}