以java project为例,首先需要导入需要的jar包:jcommon-1.0.23.jar, jfreechart-1.0.19.jar.

画饼状图示例:

package com.it.jfchart;import java.awt.Font;import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PiePlot;
import org.jfree.chart.title.LegendTitle;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
/*** jFreeChart画饼状图* ApplicationFrame是JFreeChart中写好的一个类,使用它就可用一个单独的JFrame来显示图表*/
public class Mypie extends ApplicationFrame {// 字体设置private static final Font font = new Font("simsun",Font.ITALIC,22);public Mypie(String title) {super(title);setContentPane(new ChartPanel(getChart()));}/** 封装画图所需的数据集对象DefaultPieDataset*/private static DefaultPieDataset getDataset(){DefaultPieDataset dataset = new DefaultPieDataset();dataset.setValue("本科生", 50);dataset.setValue("研究生", 30);dataset.setValue("博士生", 20);return dataset;}/** 返回JFreeChart对象* JFreeChart对中文支持不好, 所有涉及汉字的部分,必须重新设置字体,否则显示乱码*/public JFreeChart getChart(){final DefaultPieDataset dataset = getDataset();// 有标题,无悬浮提示,无连接(true,false,false)JFreeChart chart = ChartFactory.createPieChart("XX公司员工学历比例图", dataset,true,false,false);/** 重新设置字体*/// 重新设置标题字体chart.setTitle(new TextTitle("XX公司员工学历比例图",font));// 重新设置图例字体LegendTitle legend = chart.getLegend();legend.setItemFont(font);// 重新设置统计表图像字体PiePlot plot = (PiePlot) chart.getPlot();plot.setBackgroundAlpha(0.9f);plot.setLabelFont(font);return chart;}// 测试方法public static void main(String[] args){Mypie demo = new Mypie("XX公司员工学历比例图");demo.pack();RefineryUtilities.centerFrameOnScreen(demo);demo.setVisible(true);}}


画柱状图示例:

package com.it.jfchart;import java.awt.Font;import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.title.LegendTitle;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
/*** JFreeChart画柱状图*/
public class Mybar extends ApplicationFrame {// 字体设置private static final Font font = new Font("simsun",Font.ITALIC,22);public Mybar(String title) {super(title);setContentPane(new ChartPanel(getChart()));}/** 封装柱状图所需的数据集对象DefaultCategoryDataset*/private static DefaultCategoryDataset getDataset(){DefaultCategoryDataset dataset = new DefaultCategoryDataset();dataset.setValue(50,"本科生","本科生");dataset.setValue(40,"研究生","研究生");dataset.setValue(30,"博士生","博士生");return dataset;}/** 返回JFreeChart对象* JFreeChart对中文支持不好, 所有涉及汉字的部分,必须重新设置字体,否则显示乱码*/public JFreeChart getChart(){final DefaultCategoryDataset dataset = getDataset();// 有标题,无悬浮提示,无连接(true,false,false)JFreeChart chart = ChartFactory.createBarChart3D("XX公司员工学历比例图", "学历", "人数", dataset,PlotOrientation.VERTICAL,true,false,false);/** 重新设置字体*/// 重新设置标题字体chart.setTitle(new TextTitle("XX公司员工学历比例图",font));// 重新设置图例字体LegendTitle legend = chart.getLegend();legend.setItemFont(font);// 设置X轴坐标上的文字的字体chart.getCategoryPlot().getDomainAxis().setTickLabelFont(font);// 设置X轴坐标标题的字体chart.getCategoryPlot().getDomainAxis().setLabelFont(font);// 设置Y轴坐标上的文字的字体chart.getCategoryPlot().getRangeAxis().setTickLabelFont(font);// 设置Y轴坐标标题的字体chart.getCategoryPlot().getRangeAxis().setLabelFont(font);return chart;}// 测试方法public static void main(String[] args){Mybar demo = new Mybar("XX公司员工学历比例图");demo.pack();RefineryUtilities.centerFrameOnScreen(demo);demo.setVisible(true);}}

以javaweb project为例,除了上述两个jar包,还需要struts2-jfreechart-plugin-2.3.24.1.jar.

struts.xml 需要定义chart结果类型:

<struts><package name="default" namespace="/" extends="struts-default"><!-- 定义chart结果类型 --><result-types><result-type name="chart" class="org.apache.struts2.dispatcher.ChartResult"/>    </result-types>
...

result配置如下(饼状图):

      <!-- 客户贡献统计图 --><action name="contriChart" class="statisreportAction" method="docontriChart"><result type="chart"><param name="chart">chart</param><param name="height">400</param><param name="width">700</param></result></action>

具体的Action代码如下:

    // 必须加上getChart()方法public JFreeChart getChart() {return chart;} // 客户贡献统计图public String docontriChart(){ordHistoryList = srBiz.orderHistoryList(); //获取订单数据DefaultPieDataset dataset = new DefaultPieDataset();// 给dataset赋值for (Orderhistory history : ordHistoryList) {dataset.setValue(history.getCustomerinfo().getCName(), history.getOTotalaccount());}// 实例化chartchart = ChartFactory.createPieChart("客户贡献统计图", dataset, true, false, false);// 设置字体chart.setTitle(new TextTitle("客户贡献统计图",font));LegendTitle legend = chart.getLegend();legend.setItemFont(font);PiePlot plot = (PiePlot) chart.getPlot();plot.setBackgroundAlpha(0.9f);plot.setLabelFont(font);return SUCCESS;}

JSP页面显示(通过click事件来显示统计图):

<%--图片src中写入action名字,执行生成统计图操作 --%>
<div><img id="chart" alt="" src="contriChart" style="display:none; "></div>

js函数:

<script type="text/javascript">
// 显示统计图
function showChart(){var imgId=document.getElementById("chart");if(imgId.style.display=="block"){imgId.style.display="none";}else{imgId.style.display="block";}
}

转载于:https://www.cnblogs.com/archermeng/p/7537388.html

JFreeChart插件使用相关推荐

  1. 利用jFreeChart插件生产各种图形的报表

    利用jFreeChart插件生产各种图形的报表 1.添加基于maven的依赖包 <!-- JfreeChart报表依赖 --> <dependency><groupId& ...

  2. JFreeChart插件

    JFreeChart的核心对象. 1. 制图对象 JFreeChart的类是制图对象.常用方法: 方法 说明 Void setAntiAlias(Boolean flag) 设置字体边界模糊 Void ...

  3. java cutline_利用JFreeChart生成饼形图

    14.3 利用JFreeChart生成饼形图 通过JFreeChart插件,即可以生成普通效果的饼形图,也可以生成3D效果的饼形图:如果想生成普通效果的饼形图,需要通过工厂类ChartFactory的 ...

  4. JFreechart综合

    JFreeChart是一个Java开源项目,是一款优秀的Java图表生成插件,它提供了在Java Application.Servlet和JSP下生成各种图片格式的图表,包括柱形图.饼形图.线图.区域 ...

  5. JFreeChart 图表

    引用:http://wjf118gx.blog.163.com/blog/static/3796915820071110105924465/ JFreeChart是一个Java开源项目,是一款优秀的J ...

  6. JFreeChart生成饼形图(3)11 (转自 JSP开发技术大全)

    FreeChart生成饼形图(3) (转自 JSP开发技术大全) 14.3 利用JFreeChart生成饼形图 通过JFreeChart插件,即可以生成普通效果的饼形图,也可以生成3D效果的饼形图:如 ...

  7. 深入全面阐释Struts 2的方方面面

    <深入浅出Struts 2> 一.Struts概述 Struts是一个用来开发Model 2应用程序的框架.这个框架可以提高开发工作的速度,因为它提供的下面这些功能解决了Web应用程序开发 ...

  8. java 制作报表案例_javaweb项目报表案例

    [实例简介] javaweb项目报表案例.采用JFreeChart插件,包含其使用详细教程. [实例截图] [核心代码] javaweb项目报表案例 └── 报表 ├── 案例 │   ├── jfr ...

  9. linux+qt4.8画波形图,Qt画笔实现波形区域图

    参考文章:https://blog.csdn.net/yuxing55555/article/details/79752978 效果图: void WareArea::paintEvent(QPain ...

最新文章

  1. 解读生命密码的基本手段 ——DNA测序技术的前世今生
  2. DL_WITH_PY系统学习(第2章)
  3. 服务监控-URL接口监控
  4. c语言编程暴力是什么意思,(C语言代码)用笨办法暴力出来的,但是还是希望给大家一点思路上的启发...
  5. 使用正则移除尖括号中的指定子字符串
  6. ITK:平移一个网格
  7. 数据挖掘算法 1 ID3(python)
  8. Facebook 的 PHP 性能与扩展性
  9. 记一次海洋cms任意代码执行漏洞拿shell(url一句话)
  10. 颜值控必备!一看就会的动态图表,让枯燥的图表变得生动起来!
  11. stm32+ESP8266实现最简单的手机控制LED灯
  12. 使用迅雷下载百度网盘资源
  13. echarts绘制地图
  14. 【ROM制作工具】如何精简ROM?快速精简ROM详细教程!
  15. 电脑连接热点无internet访问权限_电脑连接无线网,显示无网络访问权限
  16. kali2020.3安装openvas(gvm11)附gvm修改amdin密码以及gvm创建账号
  17. 均值、方差和标准差计算的python代码
  18. 利用USGS网站下载Landsat系列影像(个人总结的小技巧,适用新手小白)
  19. Front Immunol 复现 | 4. 使用estimate包评估肿瘤纯度
  20. Oracle INSERT 语句

热门文章

  1. .Net高级技术——IDisposable
  2. linux批量备份服务器配置文件和目录的脚本
  3. C# 中特性(Attribute)的使用简介
  4. euler‘s formula
  5. 减少生活中的不确定性
  6. 如何管理和组织一个智库?参考西交利物浦大学智库治理结构和我的偶像们的成长路径!
  7. 【转】运输层TCP协议详细介绍
  8. VS2005 ATL WINDOWS服务感想
  9. Redis scan命令原理
  10. linux下安装navicat并生成桌面图标