为什么clearRect()方法不清除画布上的区域?

时间:2016-02-29 16:56:08

标签: java graphics applet

我编写了一个Java applet,它在循环的每次迭代中更新后,在画布上的相同位置打印文本。文本值更改并且输出正确但是我在循环中调用的 clearRect()方法在每次打印之前清除文本区域不起作用并且文本被覆盖。我可以看到输出最多2-3次迭代但是它不可读。小程序实际执行倒计时并以 HH:MM:SS 格式显示时间。以下是我的代码。请预测原因和/或纠正它:

/* Only the section of the code I'm having problems in is included */

while (t>=0) {
    //int t stores total time in seconds
    int h=(t/3600);
    int m=((t%3600)/60);
    int s=((t%3600)%60);
    str=h+" : "+m+" : "+s;
    /* String str holds data to be displayed, i.e., time in HH : MM : SS format */
    g.clearRect(20,200,150,30);
    g.drawString(str,20,200);
    try{
        Thread.sleep(1000); //elapses 1 second
    }
    catch(Exception e) {}
    t=t-1;
}

1 个答案:

答案 0 :(得分:0)

使用drawRect颜色而不是clearRect。就像@ControlAltDel解释它一样。我不确定上面的代码是否位于您的绘画或运行中。我仍然建议使用runnable方法而不是在循环中绘制它。与this link相似。祝你好运