问题如题目,谢谢!!!

解决方案 »

  1.   

    我想用swt画一个clock出来// 用来设置时间
    setTime(h, m, s);clockCanvas = new Canvas(clockComposite, SWT.None);
    clockCanvas.setBounds(0, 0, 200, 200);gc = new GC(clockCanvas);
    clockCanvas.addPaintListener(new PaintListener()
    {
    public void paintControl(PaintEvent event)
    {
                    // 画圆
    gc.drawOval(leftX, topY, height, width);
    // 画出秒线
    int endX = getLineEndX(secLineLength, computeSecRadian(sec));
    int endY = getLineEndY(secLineLength, computeSecRadian(sec));
    gc.drawLine(centerX, centerY, endX, endY);
    // 画出分钟线
    endX = getLineEndX(minLineLength, computeMinRadian(min));
    endY = getLineEndY(minLineLength, computeMinRadian(min));
    gc.drawLine(centerX, centerY, endX, endY);
    // 画出时钟线
    endX = getLineEndX(hourLineLength, computeHourRadian((double)hour));
    endY = getLineEndY(hourLineLength, computeHourRadian((double)hour));
                    gc.drawLine(centerX, centerY, endX, endY);
    gc.dispose();
    }
    });
    在运行时,前面画出的秒线,分钟线和时钟线都不会消除,我想问一下,怎么才能把前面画出的线消除掉,
    或在swt中,还有其他的方法来画出clock???请详细地说一下,我才开始看swt
    谢谢!!!!
      

  2.   

    最基本的动画绘制方法,比如:你在白色背景上画了一条黑线,就得再画一条白线把他盖上如果你做时钟的话,肯定有表盘(即使只是白板),那么,画出一个指针后,重新绘制表盘,把它盖上,然后画新的指针没用过java的绘图,不过思路应该差不多    里边的repaint()方法不知是否就是干这个的?总之需要分层次画
      

  3.   

    用clockCanvas.redraw();这个可以重画
    我还想问一下,为什么用clockCanvas.redraw();之后
    表盘的闪烁很历害???
    谢谢!!!
      

  4.   

    gc.drawOval(leftX, topY, height, width); 
    前背景色填充面板