就算你是高手也不一定解释的清!!!急急!!

p10305119 2007-04-13 04:02:46
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);*/
}

}


请问此题输出一个圆盘,但每改变窗体大小一次一下,圆盘就转动一下!
那位大师能解释一下!!!!
...全文
146 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
cxz7531 2007-04-13
  • 打赏
  • 举报
回复
把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];
}
}
cxz7531 2007-04-13
  • 打赏
  • 举报
回复
start=0
start=363
start=726
start=1089
start=1452
start=1815
cxz7531 2007-04-13
  • 打赏
  • 举报
回复
这个很简单

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

62,614

社区成员

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

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