本人是个新手,这是一个小程序,可以自动的把圆圈从小变大.先看程序吧:
import java.awt.*;
import java.applet.*;
public class app45 extends Applet implements Runnable
{  Thread t=null;
int x,y,r;
  public void init()
  {
     x=100;
       y=100;
      r=10;
  } 
  public void paint(Graphics g)
  {  g.setColor(Color.white);
     g.drawArc(x,y,r,r,0,360);
     if(t!=null&&r<300)
     {r+=10;
     g.setColor(Color.pink);
     g.drawArc(x,y,r,r,0,360);
     if(r>300)
       t.stop();
     }
    
  }
  public void start()
  {  if(t==null)
    { t=new Thread(this);
       t.start();}
  }
  public void stop()
  { t.stop();
    t=null;
  }
  public void run()
  {  
    while(t!=null)
    {try
    { Thread.sleep(800);
    }
    catch(InterruptedException e)
    {}
    repaint();  //这个地方不太明白
    }
  }
  public void update(Graphics g)
     {paint(g);}
 }
这个地方不太明白:这里面有几个线程?是不是类本身app45实现runnable接口算一个,然后t也算一个呢?这就2个了???
书上说Thread.sleep(800);是为了程序的执行暂时停下来,使得CPU有时间去调用repaint()方法.线程暂停sleep是把CPU让给其他正在排队的线程呀,让给哪个线程呢?如果已经让给别的线程了,那暂停下来的线程还怎么会去执行repaint呢?