java swt canvas.redraw 画图问题

java swt canvas.redraw 画图问题

最新再用Java swt做桌面应用程序。,遇到一个小问题
问题描述:在地图上标记移动物体的位置,实际上就输在canvas中的图片上画点;由于是移动物体,所以位置时时刻刻都在变动,当把当前时刻物体绘制到canvas中的时候,就需要考虑下一次绘制,这时候我用的是canvas.redraw()来重新加载地图(图片),然后再把物体的绘制上去,这个过程就是用来刷新移动物体在地图上的位置的。问题来了,按照这个方法实际上是绘制的结果一闪而过,新的位置并没有显示到redraw之后的地图上。 求大神解答! 小弟特别感谢!

canvas.addPaintListener(new PaintListener(){
        @Override
        public void paintControl(PaintEvent e) {
            e.gc.drawImage(image, 0, 0);
            drawGridLine();                 
        }

    });

//程序某处 使用到canvas.redraw();
            for(int j=0; j<aList.size(); j++)
            {
                canvas.redraw();
                Point aPoint = (Point) aList.get(j);
                gc.drawImage(imageDot, 0, 0, 54, 53, 
                        (int)(aPoint.getX())-5, (int)(aPoint.getY())-5, 10, 10);
            }



Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!