(重新)在画布上绘图

时间:2017-04-05 11:18:54

标签: java canvas swt

我要在SWT编码自己的模拟时钟。我设法在一个时间点绘制它,一切都运行良好,直到控制重新绘制自己为止 似乎“旧图纸”在绘图事件中是持久的,我找不到删除它们的方法。理想的是我在Canvas上绘制的不同形状的某种参考,以便我可以单独删除它们,但是一种清除整个画布的方法,以便我可以从头开始绘制所有内容也将受到赞赏。

我发现的onyl方法是处理当前的Canvas并在完全相同的位置创建一个新的但是对于我来说这似乎是一件非常浪费的资源...

1 个答案:

答案 0 :(得分:1)

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

public void paintControl(PaintEvent event) {

  GC gc = event.gc;

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

  Rectangle fillRect = getClientArea();

  gc.fillRectangle(fillRect);

  ... continue drawing
}