问个很菜的问题,多线程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秒刷新一次

解决方案 »

  1.   


    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(); 
        } 
      

  2.   


    如果楼主用的是单线程的,楼上的可能导致整个程序暂停2秒,
    建议楼主用javax.swing.Timer试试吧,或者在另外一个线程里调用paint(),并sleep()
      

  3.   

    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();
        }