帮你尝试了一下用Applet来做import java.awt.*;
import java.applet.*;public class DrawArc extends Applet{  private double ratio[]={0.3,0.2,0.4,0.1};
  private int Angle[]=new int[ratio.length];
  private int SEAngle[]=new int[ratio.length*2];
  private Color c[]=new Color[ratio.length];
  public void  init()
  {
  SEAngle[0]=0;
  
    for(int i=0;i<ratio.length;i++){
       Angle[i]=(int)(360*ratio[i]);
       SEAngle[1]=Angle[0];
       if(i!=0){
        SEAngle[2*i]=Angle[i-1]+SEAngle[2*(i-1)];
        SEAngle[2*i+1]=SEAngle[2*i]+Angle[i];
       }
     
    }
    
    
  }
  public void paint(Graphics g){
   try{  
    for(int i=0;i<ratio.length;i++){
       c[i]=new Color((int)(Math.random()*255),(int)(Math.random()*255),(int)(Math.random()*255));
       System.out.println("("+SEAngle[2*i]+","+SEAngle[2*i+1]+")");
     
       g.setColor(c[i]);
       g.drawString(c[i].toString(),(int)(Math.random()*400),(int)(Math.random()*400));
       g.fillArc(120,120,150,150,SEAngle[2*i],SEAngle[2*i+1]);
       
    }
   //Thread.currentThread().sleep(3000);
   //repaint();
  }catch(Exception e)
  {
      System.out.println(e.toString());
   }  }}
有一个小问题就是文字颜色可以变,可是饼图构成的整个圆却是一个颜色,你再做进一步的工作。

解决方案 »

  1.   

    文件名:test.jsp
    <%@ page contentType="text/html;charset=GBK"%>
    <%@ page import="org.jfree.data.general.DefaultPieDataset"%>
    <%@ page import="org.jfree.chart.*"%>
    <%@ page import="org.jfree.chart.plot.*"%>
    <%@ page import="org.jfree.chart.servlet.ServletUtilities"%>
    <%@ page import="org.jfree.chart.labels.StandardPieItemLabelGenerator"%>
    <%@ page import="org.jfree.chart.urls.StandardPieURLGenerator"%>
    <%@ page import="org.jfree.chart.entity.StandardEntityCollection"%>
    <%@ page import="java.io.*"%>
    <HTML>
    <HEAD>
    <META http-equiv=Content-Type content="text/html; charset=GBK">
    <TITLE>test</TITLE>
    </HEAD>
    <BODY>
    <% DefaultPieDataset data = new DefaultPieDataset(); 
    //for(int i=0;i<365;i++)
    //{
    //data.setValue(i+"天",i+50);
    //}
    data.setValue("高中以下",370); 
    data.setValue("高中",1530); 
    data.setValue("大专",5700); 
    data.setValue("本科",8280); 
    data.setValue("硕士",4420); 
    data.setValue("博士",80); PiePlot3D plot = new PiePlot3D(data);//3D饼图 JFreeChart chart = new JFreeChart("",JFreeChart.DEFAULT_TITLE_FONT, plot, false);chart.setBackgroundPaint(java.awt.Color.white);//可选,设置图片背景色 
    chart.setTitle("程序员学历情况调查表");//可选,设置图片标题 
    plot.setToolTipGenerator(new StandardPieItemLabelGenerator()); 
    StandardEntityCollection sec = new StandardEntityCollection(); 
    ChartRenderingInfo info = new ChartRenderingInfo(sec); 
    PrintWriter w = new PrintWriter(out);//输出MAP信息 
    //500是图片长度,300是图片高度 
    String filename = ServletUtilities.saveChartAsPNG(chart, 500, 300, info, session); 
    ChartUtilities.writeImageMap(w, "map0", info, false); String graphURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + filename; 
    %><P ALIGN="CENTER">
    <img src="<%= graphURL %>" width=500 height=300 border=0 usemap="#map0">
    </P>
    </BODY>
    </HTML>
      

  2.   


    图表组件wsChart4.5(DLL版)