在网上很难找到做报表用的各种用图。下面是我最近的新作。一点点小东西, 与大家分享,如果有什么问题请发信到[email protected] 
applet 原码,用jcreator打开即可。 
import java.awt.*; import java.applet.*; import java.awt.geom.*; import java.lang.*; import java.text.*; 
public class Caky extends Applet  {  private int i,dataApp[],n[];  private int angle=0;  private double dataAll,data[],dataArc[],x[]; 
//设置一组显示饼块颜色的值;  static Color color[]={Color.orange,Color.blue,Color.cyan,Color.DARK_GRAY,Color.GRAY,Color.green,Color.magenta};  private Arc2D.Float arc2d; 
 public Caky(){}    public void init()  {   data=new double[7];   dataArc=new double[7];   dataApp=new int[7];   n=new int[7];   x=new double[7]; 
//用于显示的值;   data[0]=100;   data[1]=60;   data[2]=80;   data[3]=120;   data[4]=180;   data[5]=110;   data[6]=210; 
//求总的值;   while(i<7)   {    dataAll+=data[i++];   } 
//求得每个饼块的度数;   for(i=0;i<7;i++)   {    dataArc[i]=data[i]*360/dataAll;   }    
//简单的精度计算;   for(i=0;i<7;i++)   {    x[i]=data[i]*100/dataAll;    n[i]=(int)(data[i]*100/dataAll); 
   if((x[i]-n[i])>0.5)    {       n[i]=n[i]+1;    }   } 
//设置每个饼块递增的次序和大小;   
dataApp[0]=0;   dataApp[1]=(int)dataArc[0];   dataApp[2]=(int)dataArc[0]+(int)dataArc[1];   dataApp[3]=(int)dataArc[0]+(int)dataArc[1]+(int)dataArc[2];   dataApp[4]=(int)dataArc[0]+(int)dataArc[1]+(int)dataArc[2]+(int)dataArc[3];   dataApp[5]=(int)dataArc[0]+(int)dataArc[1]+(int)dataArc[2]+(int)dataArc[3]+(int)dataArc[4];   dataApp[6]=(int)dataArc[0]+(int)dataArc[1]+(int)dataArc[2]+(int)dataArc[3]+(int)dataArc[4]+(int)dataArc[5]; 
 } 
 public void paint(Graphics g)  { 
//显示标题;   g.setColor(Color.black);   Font f1=new Font("Verdana",Font.BOLD,25);   g.setFont(f1);   g.drawString("the product of the last year",120,20);   Font f2=new Font("Verdana",Font.BOLD,10);   g.setFont(f2); 
  for(int i=0;i<7;i++)   {    g.setColor(color[i]);    g.fillArc(200,100,200,200,dataApp[i],(int)dataArc[i]);    if(i==6)    {     g.fillArc(200,100,200,200,dataApp[i],360-dataApp[6]);         } 
// 显示x轴的数值;    g.fillRect(40+i*80,360,30,17);    g.drawString("¡Ö"+n[i]+"%",40+i*80+35,375); 
  }    
//重画饼图的外圆   while(true)   {    g.setColor(Color.ORANGE);          g.drawLine((int)(200+100+100* Math.cos(angle*Math.PI/180)),           (int)(100+100+100* Math.sin(angle*Math.PI/180)),        (int)(200+100+100* Math.cos(angle*Math.PI/180)),           (int)(100+100+100* Math.sin(angle*Math.PI/180)));          angle++; 
   if (angle>360)    {         angle=angle%360;    }   }  } } 
html 代码如下: 
<html> <head> <title>caky</title> </head> <body> <applet code=Caky.class width=600 height=600 > </applet> </body> </html> 
  
   
 
  |