0
我正在創建簡單的應用程序,我有Tree
對象,我在用戶選擇一個時存儲文件名SWTImageCanvas.loadImage(path)
被調用。每個圖像都有一些定義的點,因此點顯示爲gc.fillOval
。當用戶將鼠標移動到橢圓上時,將通過設置一些附加變量並使用SWTImageCanvas.redraw()
方法來顯示該名稱。此重新引起帆布閃爍,所以我想到了雙緩衝我讀過一些關於它的教程,但是當我試圖運行它,我的形象是由白色層徘徊與它ovalls這裏是我的繪圖功能雙緩衝swt
private void drawStations(Event e) {
Rectangle clientRect = mainSWTImageCanvas.getClientArea();
if(mainSWTImageCanvas.getSourceImage()!=null)
{
if(mainSWTImageCanvas.getScreenImage()!=null)
mainSWTImageCanvas.getScreenImage().dispose();
Image screenImage = new Image(mainSWTImageCanvas.getDisplay(),clientRect.width,clientRect.height);
this.gc = new GC(screenImage);
//drawing ovals on gc
.
.
.
this.gc.drawImage(screenImage, 0, 0);
this.gc.dispose();
e.gc.drawImage(screenImage, 0, 0);
}