我编写了一个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;
}
答案 0 :(得分:0)
使用drawRect颜色而不是clearRect。就像@ControlAltDel解释它一样。我不确定上面的代码是否位于您的绘画或运行中。我仍然建议使用runnable方法而不是在循环中绘制它。与this link相似。祝你好运