帮你尝试了一下用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());
} }}
有一个小问题就是文字颜色可以变,可是饼图构成的整个圆却是一个颜色,你再做进一步的工作。
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());
} }}
有一个小问题就是文字颜色可以变,可是饼图构成的整个圆却是一个颜色,你再做进一步的工作。
<%@ 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>
图表组件wsChart4.5(DLL版)