package gov.gwssi.tax.nspg.datadisposal;
import java.awt.insets;
import java.awt.image;
import java.io.printwriter;
import java.text.simpledateformat;
import java.util.date;
import java.util.arraylist;
import java.util.iterator;
import java.util.locale;
import java.text.numberformat;
import javax.servlet.http.httpsession;
import org.jfree.data.*;
import org.jfree.chart.*;
import org.jfree.chart.axis.*;
import org.jfree.chart.renderer.verticalbarrenderer;
import org.jfree.chart.renderer.standardxyitemrenderer;
import org.jfree.chart.plot.*;
import org.jfree.chart.entity.*;
import org.jfree.chart.tooltips.*;
import org.jfree.chart.urls.*;
import org.jfree.chart.servlet.*;
import java.awt.font;
/**
* <p>title: </p>
* <p>description: </p>
* <p>copyright: copyright (c) 2003</p>
* <p>company: </p>
* @author jagie
* @version 1.0
*/
public class gspiechart {
public static void main(string[] args) {
long[] testdata = {
new long(10), new long(20), new long(30), new long(40)};
generatepiechart(testdata, "", null, new printwriter(system.out), 580, 250);
}
/**
* 生成图像文件
* @param datas long[]数组
* @param targeturl 点饼形图上的扇形,定向到的url
* @param session httpsession
* @param pw printwriter
* @param w 生成的图的宽度
* @param h 生成的图的高度
* @return 生成的图像文件的路径
*/
public static string generatepiechart(long[] datas, string targeturl,
httpsession session, printwriter pw,
int w, int h) {
string filename = null;
try {
defaultpiedataset data = new defaultpiedataset();
data.setvalue("正常纳税人", datas[0]);
data.setvalue("异常纳税人", datas[1]);
data.setvalue("数据不全纳税人", datas[2]);
data.setvalue("未处理纳税人", datas[3]);
// create the chart object
pie3dplot plot = new pie3dplot(data);
plot.setinsets(new insets(0, 5, 5, 5));
plot.setforegroundalpha(0.6f);
plot.setsectionlabeltype(plot.no_labels);
plot.seturlgenerator(new standardpieurlgenerator(targeturl, "type"));
plot.settooltipgenerator(new standardpietooltipgenerator());
jfreechart chart = new jfreechart(
"数据处理结果统计图", jfreechart.default_title_font, plot, true);
chart.settitle(new texttitle(
"数据处理结果统计图", new font("黑体", font.bold, 15)));
standardlegend sl = (standardlegend) chart.getlegend();
sl.setitemfont(new font("黑体", font.truetype_font, 12));
chart.setbackgroundpaint(new java.awt.color(254, 254, 141));
//因为jfreechart把生成的png文件保存在系统的临时文件夹中,你需要在适当的
//时候调用session.removeattribute("jfreechart_deleter"),这样可以保证png文
//件被删除掉
chartrenderinginfo info = new chartrenderinginfo(new
standardentitycollection());
filename = servletutilities.savechartaspng(chart, w, h, info, session);
// write the image map to the printwriter
chartutilities.writeimagemap(pw, filename, info);
pw.flush();
}
catch (exception e) {
system.out.println("exception - " + e.tostring());
e.printstacktrace(system.out);
filename = "public_error_500x300.png";
}
return filename;
}
}
.........java代码.................
<%
//以下部分为图象输出
string targeturl="../servlet/gov.gwssi.tax.nspg.
controlservlet.gsmaincontrolservlet?id="+sid;
long[] datas={normals,new long(totalabnormal),
datalacks,notprocesses};
string filename=gspiechart.generatepiechart
(datas,targeturl,session,new printwriter(out),580,250);
string graphurl = request.getcontextpath() +
"/servlet/displaychart?filename=" + filename;
%>
|