一:首先要导入所需要的包:
jfreechart-1.0.14-experimental.jar、 jfreechart-1.0.14-swt.jar、jfreechart-1.0.14.jar(等等)
二:在web.xml 中,增加如下配置:
<!-- 报表开始 -->
<servlet>
<servlet-name>DisplayChart</servlet-name>
<servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DisplayChart</servlet-name>
<url-pattern>/servlet/DisplayChart</url-pattern>
</servlet-mapping>
<!-- 报表结束 -->
三:在后台编写生成饼状图或者柱状图的代码
1、饼状图:
DefaultPieDataset dataset=new DefaultPieDataset();//填充饼状图的数据 集合
ConnectionProvider cp=((SessionFactoryImplementor)this.lgispEquipmentService.getEntityDao().getHibernateTemplate().getSessionFactory()).getConnectionProvider();
try{
//sql 语句
String pointSql=" select count(*) as count,point.point_type from lgisp_point as point , lgisp_equipment as equip, lgisp_terminal as ter where point.equipment_id=equip.EQUIPMENT_ID and equip.terminal_id=ter.terminal_id group by point.point_type";
Statement smt=cp.getConnection().createStatement();
ResultSet rs=smt.executeQuery(pointSql);//查询获得结果集
double equipCount=0;//设备总数目
HashMap hashMap=new HashMap();
while(rs.next()){
double count=Double.parseDouble(rs.getString(1));
int type=Integer.parseInt(rs.getString(2));
equipCount+=count;
hashMap.put(type, count);
}
List<TerManuFacturer> equipManuList=(List<TerManuFacturer>) request.getSession().getAttribute("pointManuList");
for(TerManuFacturer equip:equipManuList){
double rate=Double.parseDouble((hashMap.get(equip.getId())).toString())/ equipCount;
dataset.setValue(equip.getManuName(), rate);
}// 以上的代码是为生成图的dataset 准备数据
//通过工厂类生成JFreeChart对象
JFreeChart chart=ChartFactory.createPieChart("设备——厂家分配图", dataset, true, false, false);
PiePlot piePlot=(PiePlot)chart.getPlot();
//防止乱码,多标题重新设备字体(乱码问题借鉴http://chengyue2007.iteye.com/blog/424954 得到解决)
TextTitle textTitle=chart.getTitle();
textTitle.setFont(new Font("黑体",Font.PLAIN,20));
piePlot.setLabelFont(new Font("宋体",0,12));
//没有数据时显示的内容
piePlot.setNoDataMessage("无数据显示");
piePlot.setCircular(false);
piePlot.setLabelGap(0.02D);
OutputStream ostream=response.getOutputStream();
ChartUtilities.writeChartAsJPEG(ostream, chart,500, 500);
ostream.flush();
ostream.close();
return "输出图的页面";
2、柱状图
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
ConnectionProvider cp =((SessionFactoryImplementor)this.reportService.getEntityDao().getHibernateTemplate().getSessionFactory()).getConnectionProvider();
try{
Statement smt = cp.getConnection().createStatement();
ResultSet rs = smt.executeQuery("sql 语句);
while(rs.next()){
dataset.addValue(Double.parseDouble(rs.getString(1)),rs.getString(2), "") ;
}
JFreeChart chart = ChartFactory.createBarChart3D(
"图标测试", // 图表标题
"班级", // 目录轴的显示标签
"分数", // 数值轴的显示标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
true, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
OutputStream ostream = response.getOutputStream();
//设定图片的宽为400,高为300,并输出至ostream
ChartUtilities.writeChartAsJPEG(ostream, chart, 800, 600);
ostream.flush();
ostream.close();
return"输出图的页面;
这样既可完成,这是最基本的,未作进一步的改进。
分享到:
相关推荐
JFreeChart生成3D饼状图及柱状图,可把图片生成在指定文件目录下
JFreeChart 饼状图 柱状图 柱状图 堆积柱状图 折线图 这个是我特地开发的一个用JFreeChart开发的用来画图的项目,已经开发成形了各种项目的各种需求的项目,并且自己可以拓展,根据需求修改代码,完成项目的需要。 ...
flex jfreechart生成 饼状图 flex jfreechart生成 柱状图 flex jfreechart生成 曲线图 flex jfreechart生成 曲线图
jfreeChart生成的线状图,饼状图,柱状图
Struts2+JFreeChart+Myeclipse实现饼状图,柱状图,折线图。
jfreechart应用_经典例题_生成饼状图、生成单组柱状图、生成多组柱状图、生成堆积柱状图
java实现的 生成饼状图 生成单组柱状图 生成多组柱状图 生成堆积柱状图 生成折线图 里面包括了所需要的 jcommon-1.0.12.jar jfreechart-1.0.8a.jar
jfreechart使用SqlServer2000做的饼状图,柱状图,折线图。 最近在学习jfreechart,根据网上的资料做了这3个小例子,学习用的,代码有点乱!
虽然现在JS做报表和图形展示已经非常普遍和漂亮了,但是不能忽略有jfreechart 这样一种东西! 这些翻阅资料,在看以前写的示例时发现了关于jfreechart 的简单示例,不管怎样发上来分享一下!
jfreechat生成柱状图,饼状图,折线图,导出饼状图到pdf,excel.
项目中用到了一些图,要用JFreeChart生成,参考了一些资料,做了两天,分享一下!里面有柱状图,饼状图...
jfreechart生成各种图表 柱状 饼状 折线 锥状
JFreeChar图表生成柱状图和饼状图实例源代码。
这个项目只针对与初次接触JFreeChart或者想用JFreeChart制作简单的图形报表的朋友们,项目里只写了饼状图、柱状图、折线图的实现,想要具体学习JFreeChart可以参考官方文档,我也是照着官方文档写的。
jfreechart生成柱状图、折线图、饼状图等各种图形使用的jar包
Jfreechart生成图表的一个例子,能生成柱状图、饼状图、线状图,代码有详细的注释,很适合初学者学习。
动态生成饼状图、柱状图等各种图形,javaweb项目,生成图形并支持生成excel,支持下载。
这是一款免费的JAVA生成报表的工具,里面有柱状图、饼状图、折线图的Demo简单易学
JFreeChart项目源代码,下载解压后部署至服务器可以直接运行。其中包括生成饼状图 ,生成单组柱状图,生成多组柱状图,生成堆积柱状图,生成折线图