2017-04-05 176 views
0

我即將編寫自己的模擬時鐘SWT。我設法在一個時間點繪製它,一切都很好,直到控件重新繪製。
看來,「舊圖紙」通過繪圖事件是持久的,我無法找到一種方法來刪除它們。理想將是對我在Canvas上繪製的不同形狀的某種參考,以便我可以單獨刪除它們,但是可以清除完整畫布以便我可以再次從頭開始繪製所有內容的方法也值得讚賞。(Re)在畫布上畫圖

的磺酰基的方法,我發現是處置當前畫布上,然後創建完全相同的位置,而不是一個新的,但是這似乎是資源,我一個巨大的浪費的東西,簡單...

+0

我們可以看到一些代碼嗎? –

回答

1

剛在繪畫事件開始時用背景顏色填充Canvas

public void paintControl(PaintEvent event) { 

    GC gc = event.gc; 

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

    Rectangle fillRect = getClientArea(); 

    gc.fillRectangle(fillRect); 

    ... continue drawing 
}