repaint重绘

zyh1290163_com 2009-05-22 07:36:43
问个很菜的问题,多线程repaint如何控制重绘paint时间间隔

我的代码:

import java.awt.*;
import java.applet.*;
import java.util.Calendar;
public class pro extends Applet
{
public void paint(Graphics g)
{
Calendar c=Calendar.getInstance();
g.drawString("当前时间:"+c.get(c.YEAR)+"年"+c.get(c.MONTH)+"月"+c.get(c.DATE)+"日",10,10);
g.drawString("当前时间:"+c.get(c.HOUR)+"时"+c.get(c.MINUTE)+"分"+c.get(c.SECOND)+"秒",10,25);
repaint();
}
}
如何让他每隔2秒刷新一次
...全文
78 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
rypgood 2009-05-23
  • 打赏
  • 举报
回复
import java.awt.*;
import java.applet.*;
import java.util.Calendar;
public class pro extends Applet implements Runnable
{
public void paint(Graphics g)
{
Calendar c=Calendar.getInstance();
g.drawString("当前时间:"+c.get(c.YEAR)+"年"+c.get(c.MONTH)+"月"+c.get(c.DATE)+"日",10,10);
g.drawString("当前时间:"+c.get(c.HOUR)+"时"+c.get(c.MINUTE)+"分"+c.get(c.SECOND)+"秒",10,25);
}
public void run()
{
try
{
Thread.sleep(2000);
}
catch(Exception e){}
repaint();
}
}
ddyouyue 2009-05-23
  • 打赏
  • 举报
回复

如果楼主用的是单线程的,楼上的可能导致整个程序暂停2秒,
建议楼主用javax.swing.Timer试试吧,或者在另外一个线程里调用paint(),并sleep()
horizonlyhw 2009-05-22
  • 打赏
  • 举报
回复

import java.awt.*;
import java.applet.*;
import java.util.Calendar;
public class pro extends Applet
{
public void paint(Graphics g)
{
Calendar c=Calendar.getInstance();
g.drawString("當前時間:"+c.get(c.YEAR)+"年"+c.get(c.MONTH)+"月"+c.get(c.DATE)+"日",10,10);
g.drawString("當前時間:"+c.get(c.HOUR)+"時"+c.get(c.MINUTE)+"分"+c.get(c.SECOND)+"秒",10,25);
try {
Thread.currentThread().sleep(2000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
repaint();
}
}

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧