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);
}