import java.awt.*;
import java.applet.*;
public class Test2 extends Applet 
{  private static final long serialVersionUID = 1L;
   int i=0;
   public void paint(Graphics g)
   { i=(i+2)%360;
 Color c=new Color((3*i)%255,(7*i)%255,(11*i)%255);
 g.setColor(c);
 g.fillArc(30, 50, 120, 100, i, 2) ;//1
 g.fillArc(30, 152, 120, 100, i, 2);//2
 try{Thread.sleep(500);}catch(InterruptedException e){}
 repaint();
   }
   public void updata(Graphics g)
   {g.clearRect(30, 152, 120, 100);
    paint(g);   
   } 
}上面的小程序,当我重写父类Component的updata(Graphics g)方法时,每次调用repaint()方法时自动调用updata方法,清除了//2所画的弧,为什么//1处的弧也被清除了,怎样实现//1处逐渐
形成一个椭圆?

解决方案 »

  1.   

    repaint()方法不会自动调用updata方法
    自动调用的是 update()将updata改为update()后,//2所画的扇形就可逐渐形成一个椭圆
      

  2.   

    上面的说明中每次调用repaint()方法时自动调用updata()方法,后面的括号弄掉了。//2处的repaint()方法会调用update()方法,不会形成椭圆,这儿不明白的是//1也会调用update()方法?怎样使//1逐渐形成椭圆???
      

  3.   

     updata() 是个什么东西 !!!
      

  4.   

    方法名写错了update()被我写成了updata(),问题已经解决了,谢了楼上的回答
      

  5.   

    update()被我写错了,问题已经解决,多谢楼上的