今天用JFreeChar整了一下报表,感觉还不错,先整理如下:
具体效果见上传的图片;
代码如下:
1 前台页面:
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
请选择要生成的图形报表<br>
<select id='charid' onchange="makeChar()">
<option value="0">请选择一种图表</option>
<option value="Pie">PieChart</option>
<option value="Bar">BarChart3D</option>
<option value="Line">LineChart</option>
</select>
<div id="displayDiv"></div>
<script type="text/javascript" language="javascript">
function makeChar(){
var charType=document.getElementById("charid").value;
if(charType==0){
return;
}else{
var imgdiv=document.getElementById("displayDiv");
imgdiv.innerHTML="";
var img=document.createElement("img");
// img.setAttribute("src","servlet/ChartServlet?chartType="+charType);
img.setAttribute("src","myCharServlet?charType="+charType);
//imageZone.setAttribute('src',"servlet/ChartServlet?chartType="+cType);
imgdiv.appendChild(img);
}
}
</script>
后台代码:
package cn.netjava.jFreeChart;
import java.io.IOException;
import java.io.OutputStream;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.general.DefaultPieDataset;
public class MyCharServlet extends HttpServlet {
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
//super.service(arg0, arg1);
System.out.println("到了myCharServlet了");
//response.setContentType("image/png;charset=UTF-8");
response.setHeader("Cache-Control", "no-cache");
response.setContentType("image/png");
String chartType=request.getParameter("charType").trim();
JFreeChart jFreeChart=getCharByType(chartType);
if(jFreeChart!=null){
OutputStream os=response.getOutputStream();
ChartUtilities.writeChartAsPNG(os, jFreeChart, 500, 300);
os.flush();
os.close();
}
}
public JFreeChart getCharByType(String charType){
JFreeChart jfChart=null;
if(charType.equalsIgnoreCase("pie")){
//饼图
DefaultPieDataset dataSet=new DefaultPieDataset();
dataSet.setValue("java", new Integer(55));
dataSet.setValue("c++", new Integer(30));
dataSet.setValue("delphi", new Integer(15));
//DefaultPieDataset dataSet= getPieDataSet();
jfChart=ChartFactory.createPieChart("各语言使用人数统计表", dataSet, true, false, false);
}else if(charType.equalsIgnoreCase("line")){
DefaultCategoryDataset dataSet=new DefaultCategoryDataset();
String groups[]={"曼联","利物浦","阿森纳"};
String round[]={"第一轮","第二轮","第三轮","第四轮","第五轮","第六轮"};
for (int i = 0; i < round.length; i++) {
for (int j = 0; j < groups.length; j++) {
dataSet.setValue(new java.util.Random().nextInt(5),groups[j] , round[i]);
}
}
jfChart=ChartFactory.createLineChart("08/09赛季英超球队积分榜(前六轮)", "球队", "排名", dataSet, PlotOrientation.VERTICAL, true, false, false);
}else if(charType.equalsIgnoreCase("bar")){
String citys[]={"北京","上海","广州"};
String months[]={"一月","二月","三月"};
DefaultCategoryDataset dataset=new DefaultCategoryDataset();
for (int i = 0; i < months.length; i++) {
for (int j = 0; j < citys.length; j++) {
dataset.setValue(new java.util.Random().nextInt(1000), citys[j], months[i]);
}
}
jfChart=ChartFactory.createBarChart3D("2009年中国三大城市降水量表(第一季度)", "城市", "降水量", dataset, PlotOrientation.VERTICAL, true, false, false);
}
return jfChart;
}
public static DefaultPieDataset getPieDataSet() {
// 用来填充pie图的数据集
DefaultPieDataset dataset = new DefaultPieDataset();
// 饼图分块名字
String[] seriesNames = { "芙蓉路", "八一路", "五一路", "大学路", };
for (int i = 0; i < seriesNames.length; i++) {
int value = new java.util.Random().nextInt(1000) + 500;
// 设置pie数据集中的数据对
dataset.setValue(seriesNames[i], value);
}
return dataset;
}
}
- 大小: 21.5 KB
- 大小: 23 KB
- 大小: 29.9 KB
分享到:
相关推荐
JfreeChar学习资料 JfreeChar学习资料 JfreeChar学习资料
java开发的jfreechar插件,jfreechar报表开发工具插件
jfreechar开发中应该如何配置,例子等
JfreeChar教程与实例。
jfreechar饼图,超级实用
java 做的动态实现JFreechar报表的例子,非常实用简单
使用JFreeChar,实现柱状图,饼形图,线性图
JFreeChar 柱图实现,教程,及其源码
jfreechar完整的例子,详细的解释,有web的,有main方法的
jfreechar各种图的样式...及代码
jfreechar 实现生成柱状图,饼图,曲线,没有调用正在的数据库数据,用的到的可以看看。
JFreeChar 动态曲线图,定时刷新,带节点事件
已经做好的项目, 部署上后可以直接运行,里有你想要的各种用jfreechar做的图标
资源有连个jfreechar 的例子,有饼图,还是条线图
JFreeChar制作饼图和柱状图 需要jcommon-1.0.0-rc1.jar包和jfreechart-1.0.0-rc1.jar包
包含所有的jfreechar画的饼状图、柱状图、曲线图所有代码都是本人自己编写并且能运行出结果的。
JfreeChar解析JfreeChar解析JfreeChar解析JfreeChar解析JfreeChar解析JfreeChar解析JfreeChar解析JfreeChar解析
JFreeChart它主要是用来制作各种各样的图表,这些图表包括:饼图、柱状图(普通柱状图以及堆栈柱状图)、线图、区域图、分布图、混合图、甘特图以及一些仪表盘等等。
JFreeChart目前是最好的java图形解决方案,基本能够解决目前的图形方面的需求。此文件有JFreeChart必备包和中文api,比较齐全。
里面详细讲述了JFreeChar的使用 并配备大量的例子 以及swing界面JFreeChar的使用