import java.applet.Applet;
import java.awt.*;
public class Exam4_10 extends Applet{
Color color[]={Color.red,Color.green,Color.blue,Color.cyan,Color.darkGray};
double data[]={90.6,49.0,67.8,40.8,10.7};
int degree[]=new int[5];
int sum;
int start;
public void init(){
resize(500,500);
start=0;
sum=0;
for(int i=0;i<data.length;i++){
sum+=data[i];
}
for(int i=0;i<degree.length;i++){
degree[i]=(int)(data[i]/sum*360+0.5);
}
}
public void paint(Graphics g){
// for(start=0;start<=100;start=start+20){
for(int i=0;i<data.length;i++){
g.setColor(color[i]);
g.fillArc(80,80,100,100,start,degree[i]);
start=start+degree[i];
//}

}
/* g.fillArc(300,80,150,150,60,60);
g.setFont(new Font("黑体",Font.BOLD,50));
g.setColor(Color.black);
g.drawString("Hello BeiJing!",200,200);
g.setColor(Color.white);
g.drawString("Hello BeiJing!",202,198);*/
}

}
请问此题输出一个圆盘,但每改变窗体大小一次一下,圆盘就转动一下!
那位大师能解释一下!!!!

解决方案 »

  1.   

    这个很简单每改变窗体大小一次一下 ,系统发送一次repaint事件,自动调用paint一次,
    每次调用paint的时候start都不一样
      

  2.   

    start=0
    start=363
    start=726
    start=1089
    start=1452
    start=1815
      

  3.   

    把paint方法加上start = 0;就ok了
    public void paint(Graphics g) {
    start = 0;//加在这里
    for (int i = 0; i < data.length; i++) {
    g.setColor(color[i]);
    g.fillArc(80, 80, 100, 100, start, degree[i]);
    start = start + degree[i];
    }
    }