- 浏览: 237362 次
- 性别:
- 来自: 西安
文章分类
最新评论
-
qwe2252099:
给力!简单易懂
两个java web服务间SoapMessage对象的传递 -
mimang2007110:
不是自带的,自己编辑过的
java代码模板 -
墨子宇:
貌似不是带有箭头的
CSS带箭头的导航菜单 -
墨子宇:
借鉴一下。不是自带的那个吧
java代码模板 -
墨子宇:
看名字应该是注释模板吧
myeclipse编码模板
JFreeChart配置安装 1、解压jfreechart_0.9.21.zip到指定位置,其中source是jfreechart的源码,jfreechart-0.9.21-demo.jar 是例子程序(该部分留给大家自己去研究) 2、为了配置成功,我们需要关注的文件有如下三个:jfreechart-0.9.21.jar、lib\jcommon-0.9.6.jar、 lib\gnujaxp.jar 3、如果是Application开发,把上述三个文件拷贝到%JAVA_HOME%\LIB中,同时在环境变量CLASSPATH中加入 如果是WEB开发,以TOMCAT中的一个WEB项目TEST为例子说明: 把上述三个文件拷贝到TEST\WEB-INF\LIB中,然后修改TEST\WEB-INF\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> 至此jfreechart的配置就完成了,下面就可以进行jfreechart的开发了。这里值得提出的是jfreechart的类 结构设计前后兼容性不是很好,不同版本的jfreechart中类库结构可能不一样,有时候可能需要查源码。如果 是中文显示的时候可能依据观感需要改变源码的字体,不过我个人觉得这个版本比以前版本要好一些。 JFreeChart开发 package dao; import java.awt.Color; import java.awt.Font; import java.io.PrintWriter; import java.text.DecimalFormat; import java.text.NumberFormat; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartRenderingInfo; import org.jfree.chart.JFreeChart; import org.jfree.chart.axis.CategoryAxis; import org.jfree.chart.axis.NumberAxis; import org.jfree.chart.axis.ValueAxis; import org.jfree.chart.entity.StandardEntityCollection; import org.jfree.chart.labels.ItemLabelAnchor; import org.jfree.chart.labels.ItemLabelPosition; import org.jfree.chart.labels.StandardCategoryItemLabelGenerator; import org.jfree.chart.labels.StandardPieSectionLabelGenerator; import org.jfree.chart.plot.CategoryPlot; import org.jfree.chart.plot.PiePlot3D; import org.jfree.chart.plot.PlotOrientation; import org.jfree.chart.renderer.category.BarRenderer3D; import org.jfree.chart.renderer.category.LineAndShapeRenderer; import org.jfree.chart.servlet.ServletUtilities; import org.jfree.data.category.CategoryDataset; import org.jfree.data.category.DefaultCategoryDataset; import org.jfree.data.general.DefaultPieDataset; import org.jfree.data.general.PieDataset; import org.jfree.ui.TextAnchor; public class FreeChartCommon { static String graphURL1 = null; /** * 饼状图 */ public static JFreeChart generatePieChart(String xml) { PieDataset dataset = getDataSet(xml); JFreeChart chart = ChartFactory.createPieChart3D("纳税考评信息饼状图", // 图表标题 dataset, // 数据集 true, // 是否显示图例 false, // 是否生成工具 false // 是否生成URL链接 ); chart.setBackgroundPaint(Color.pink); chart.getTitle().setFont(new Font("宋体",Font.BOLD,20)); chart.getLegend().setItemFont(new Font("宋体",Font.BOLD,10)); PiePlot3D plot = (PiePlot3D) chart.getPlot(); plot.setLabelFont(new Font("SansSerif",Font.BOLD,12)); plot.setCircular(true); plot.setLabelGap(0.01D);//间距 //图片中显示百分比:默认方式 //设置无数据时的信息 plot.setNoDataMessage("无对应的数据,请重新查询。"); //设置无数据时的信息显示颜色 plot.setNoDataMessagePaint(Color.red); //图片中显示百分比:自定义方式,{0} 表示选项, {1} 表示数值, {2} 表示所占比例 ,小数点后两位 plot.setLabelGenerator(new StandardPieSectionLabelGenerator( "{0}={1}({2})", NumberFormat.getNumberInstance(), new DecimalFormat("0.00%"))); //图例显示百分比:自定义方式, {0} 表示选项, {1} 表示数值, {2} 表示所占比例 plot.setLegendLabelGenerator(new StandardPieSectionLabelGenerator( "{0}={1}({2})")); return chart; } /** * 柱状图 */ public static JFreeChart generateBarChart(String xml) { CategoryDataset dataset = getDataSet2(xml); JFreeChart chart = ChartFactory.createBarChart3D("纳税考评信息柱状图", // 图表标题 "", // 目录轴的显示标签 "", // 数值轴的显示标签 dataset, // 数据集 PlotOrientation.VERTICAL, // 图表方向:水平、垂直 true, // 是否显示图例(对于简单的柱状图必须是false) false, // 是否生成工具 false // 是否生成URL链接 ); //显示每个柱的数值,并修改该数值的字体属性 chart.getTitle().setFont(new Font("宋体",Font.BOLD,20)); chart.getLegend().setItemFont(new Font("宋体",Font.BOLD,10)); CategoryPlot plot=chart.getCategoryPlot();//获取图表区域对象 CategoryAxis domainAxis=plot.getDomainAxis(); //水平底部列表 domainAxis.setLabelFont(new Font("宋体",Font.BOLD,14)); //水平底部标题 domainAxis.setTickLabelFont(new Font("宋体",Font.BOLD,12)); //垂直标题 ValueAxis rangeAxis=plot.getRangeAxis();//获取柱状 rangeAxis.setLabelFont(new Font("宋体",Font.BOLD,15)); CategoryPlot categoryplot = (CategoryPlot) chart.getPlot(); categoryplot.setNoDataMessage("无对应的数据,请重新查询。"); categoryplot.getRenderer().setItemLabelGenerator(new StandardCategoryItemLabelGenerator()); categoryplot.getRenderer().setItemLabelsVisible(true); categoryplot.getRenderer().setPositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.BOTTOM_LEFT)); BarRenderer3D renderer = new BarRenderer3D(); renderer.setItemLabelGenerator( new StandardCategoryItemLabelGenerator()); renderer.setItemLabelsVisible( true ); return chart; } /** * 折线图 */ public static JFreeChart generateLineChart(String xml) { CategoryDataset dataset = getDataSet3(xml); JFreeChart chart = ChartFactory.createLineChart("纳税考评折线图", // 图表标题 "", // 目录轴的显示标签 "", // 数值轴的显示标签 dataset, // 数据集 PlotOrientation.VERTICAL, // 图表方向:水平、垂直 true, // 是否显示图例(对于简单的柱状图必须是false) false, // 是否生成工具 false // 是否生成URL链接 ); /*------------配置图表属性--------------*/ // 1,设置整个图表背景颜色 chart.setBackgroundPaint(Color.pink); /*------------设定Plot参数-------------*/ CategoryPlot plot = chart.getCategoryPlot(); // 2,设置详细图表的显示细节部分的背景颜色 // plot.setBackgroundPaint(Color.PINK); // 3,设置垂直网格线颜色 plot.setDomainGridlinePaint(Color.black); // 4,设置是否显示垂直网格线 plot.setDomainGridlinesVisible(true); // 5,设置水平网格线颜色 plot.setRangeGridlinePaint(Color.blue); // 6,设置是否显示水平网格线 plot.setRangeGridlinesVisible(true); /*----------设置消除字体的锯齿渲染(解决中文问题)--------------*/ //显示每个柱的数值,并修改该数值的字体属性 chart.getTitle().setFont(new Font("宋体", Font.BOLD, 15)); chart.getLegend().setItemFont(new Font("宋体", Font.BOLD, 15)); CategoryAxis domainAxis = plot.getDomainAxis(); /*------设置X轴坐标上的文字-----------*/ domainAxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 11)); /*------设置X轴的标题文字------------*/ domainAxis.setLabelFont(new Font("宋体", Font.PLAIN, 12)); NumberAxis numberaxis = (NumberAxis) plot.getRangeAxis(); /*------设置Y轴坐标上的文字-----------*/ numberaxis.setTickLabelFont(new Font("宋体", Font.PLAIN, 12)); /*------设置Y轴的标题文字------------*/ numberaxis.setLabelFont(new Font("宋体", Font.PLAIN, 12)); numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); numberaxis.setAutoRangeIncludesZero(true); numberaxis.setUpperMargin(0.20); numberaxis.setLabelAngle(Math.PI / 2.0); chart.getLegend().setItemFont(new Font("宋体",Font.BOLD,10)); // 获得renderer 注意这里是下嗍造型到lineandshaperenderer!! LineAndShapeRenderer lineandshaperenderer = (LineAndShapeRenderer)plot.getRenderer(); // lineandshaperenderer.setBaseShapesVisible(true); // series 点(即数据点)可见 lineandshaperenderer.setBaseLinesVisible(true); // series 点(即数据点)间有连线可见 //显示折点数据 lineandshaperenderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator()); lineandshaperenderer.setBaseItemLabelsVisible(true); return chart; } /** * 获取一个饼状图的简单数据集对象 * * @return */ private static PieDataset getDataSet(String xml) { DefaultPieDataset dataset = new DefaultPieDataset(); // try { // xml = "<ROOT>" + xml + "</ROOT>"; // Document document = DocumentHelper.parseText(xml); // // 读取ITEM // List list = document.selectNodes("//ITEM"); // // 获取NODE细节 // Iterator it = list.iterator(); // // while (it.hasNext()) { // Node node = (Node) it.next(); // /** // * // */ // dataset.setValue(Tools.nullToSpace(node.valueOf("HZFS")), Double.parseDouble(node.valueOf("XMMC"))); // // } // // } catch (Exception e) { // // e.printStackTrace(); // // } dataset.setValue("管理人员啊", 10.02D); dataset.setValue("市场人员啊", 20.23D); dataset.setValue("开发人员啊", 60.02D); dataset.setValue("OEM人员啊", 10.02D); dataset.setValue("其他人员啊", 5.11D); dataset.setValue("其他人员啊3", 5.11D); return dataset; } /** * 获取一个柱状图数据集对象 * * @return */ private static CategoryDataset getDataSet2(String xml) { DefaultCategoryDataset dataset = new DefaultCategoryDataset(); // try { // xml = "<ROOT>" + xml + "</ROOT>"; // Document document = DocumentHelper.parseText(xml); // // 读取ITEM // List list = document.selectNodes("//ITEM"); // // 获取NODE细节 // Iterator it = list.iterator(); // while (it.hasNext()) { // Node node = (Node) it.next(); // dataset.setValue(Double.parseDouble(node.valueOf("XMMC")), Tools // .nullToSpace(node.valueOf("HZFS")), Tools.nullToSpace(node // .valueOf("HZFS"))); // } // // } catch (Exception e) { // // e.printStackTrace(); // // } // 各曲线名称 String series1 = "计划"; String series2 = "营销"; String series3 = "开发"; // 横轴名称(列名称) String type1 = "管理人员"; String type2 = "市场人员"; String type3 = "开发人员"; dataset.setValue(10.02D,series1,type1); dataset.setValue(10.02D,series1,type2); dataset.setValue(10.02D,series1,type3); dataset.setValue(40.02D,series2,type1); dataset.setValue(40.02D,series2,type2); dataset.setValue(80.02D,series2,type3); dataset.setValue(50.02D,series3,type1); dataset.setValue(50.02D,series3,type2); dataset.setValue(60.02D,series3,type3); return dataset; } /** * 获取一个折线图数据集对象 * * @return */ public static CategoryDataset getDataSet3(String xml) { DefaultCategoryDataset dataset = new DefaultCategoryDataset(); // try { // xml = "<ROOT>" + xml + "</ROOT>"; // Document document = DocumentHelper.parseText(xml); // // 读取ITEM // List list = document.selectNodes("//ITEM"); // // 获取NODE细节 // Iterator it = list.iterator(); // // while (it.hasNext()) { // Node node = (Node) it.next(); // dataset.setValue(Double.parseDouble(node.valueOf("ZF")), Tools // .nullToSpace(node.valueOf("XMMC")), Tools.nullToSpace(node // .valueOf("NF"))); // } // } catch (Exception e) { // // e.printStackTrace(); // // } // 各曲线名称 String series1 = "管理人员"; String series2 = "市场人员"; String series3 = "开发人员"; // 横轴名称(列名称) String type1 = "计划"; String type2 = "营销"; String type3 = "洗衣机"; dataset.setValue(0.0, series1, type1); dataset.setValue(4.2, series1, type2); dataset.setValue(3.9, series1, type3); dataset.setValue(1.0, series2, type1); dataset.setValue(5.2, series2, type2); dataset.setValue(7.9, series2, type3); dataset.setValue(2.0, series3, type1); dataset.setValue(9.2, series3, type2); dataset.setValue(8.9, series3, type3); return dataset; } /** * * @param request * @param session * @param out * @param xml * @param x 1表示折线图,2表示饼图,3表示柱状图 * @return */ public static String getGraphUrl(HttpServletRequest request, HttpSession session, PrintWriter out,String xml,int x) { JFreeChart chart=null; if(x==1){ chart=generateLineChart(xml); } if(x==2){ chart=generatePieChart(xml); } if(x==3){ chart=generateBarChart(xml); } StandardEntityCollection sec = new StandardEntityCollection(); ChartRenderingInfo info = new ChartRenderingInfo(sec); try { String filename = ServletUtilities.saveChartAsJPEG(chart, 500, 300, info, null); graphURL1 = request.getContextPath() + "/servlet/DisplayChart?filename=" + filename; } catch (Exception e) { System.out.println("error happens---" + e.toString()); } return graphURL1; } } package navigate; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import common.Tools; import dao.FreeChartCommon; public class JfreeChar_Test extends HttpServlet { /** * Constructor of the object. */ public JfreeChar_Test() { super(); } /** * Destruction of the servlet. <br> */ public void destroy() { super.destroy(); // Just puts "destroy" string in log // Put your code here } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=GBK"); response.setHeader("Cache-Control", "no-cache"); PrintWriter out = response.getWriter(); String method = request.getParameter("method"); String xml=request.getParameter("xml"); if (method == null) { method = ""; } if (xml == null) { xml = ""; } String filename=""; if(method.equals("line")) { filename=FreeChartCommon.getGraphUrl(request,request.getSession(),out,Tools.editStr(xml),1); out.print(filename); } if(method.equals("pie")) { filename=FreeChartCommon.getGraphUrl(request,request.getSession(),out,Tools.editStr(xml),2); out.print(filename); } if(method.equals("bar")) { filename=FreeChartCommon.getGraphUrl(request,request.getSession(),out,Tools.editStr(xml),3); out.print(filename); } } } 页面: <img id="imagetu" src="<%=request.getContextPath()%>/servlet/JfreeChar_Test?method=pie">
这也是我从网上摘抄的,供大家参阅。
发表评论
-
HttpClient各种使用方法
2014-08-27 15:25 1446最近项目中用到了模拟HTTP请求的部分,下面做了一个小整合 ... -
java中BCD编码
2014-08-09 11:20 3462Java中实现的BCD编码,供有兴趣的参考,欢迎批评指正 ... -
Android数据库操作的两种方式
2014-07-10 16:56 1004Android操作数据库分文两种方式,一种是自己写sql脚本 ... -
Apache Ftp Server与spring框架融合
2014-04-01 16:33 6644最近在写一个项目,需要用到FTP服务,就从网上搜了一下,发现 ... -
Apache Ftp Server使用说明
2014-04-01 15:45 677最近公司项目需要一个FTP服务器,就从网上搜了一下发现Apac ... -
编程从业 5 年后的 14 条经验
2013-04-20 14:57 8251. 当性能遇到问题时,如果能在应用层进行计算和处理,那就把 ... -
Spring自己的轻量级定时器的两种实现方式
2013-03-04 19:35 1200Spring自己本身的轻量级 ... -
Java获取当前路径
2013-03-04 12:17 8401、利用System.getProperty()函数获取当 ... -
java udp通信
2012-12-12 11:39 1200java服务器部分: public static vo ... -
java 实现ftp的文件上传和删除
2012-12-01 11:49 17435package com.tw.ftp; impor ... -
java操作FTP,实现文件上传下载删除操作
2012-12-01 11:07 16991上传文件到FTP服务器: ... -
java下载文件的四种方式
2012-11-30 15:30 998try { ... -
模拟HTTPClient发送消息到服务器
2012-07-16 14:36 1018// 存储服务器的响应消息 Stri ... -
两个java web服务间SoapMessage对象的传递
2012-07-14 15:51 1976客户端代码: try { ... -
字符串转换成SoapMessage对象
2012-07-14 15:40 4321下面的代码可以把字符串转换成SoapMessage对象 ... -
SoapMessage对象转换成字符串
2012-07-14 15:36 6402下面的代码可以把一个SoapMessage对象转换成字符串对象 ... -
手动修改和启动在spring配置文件中配置的定时器
2012-07-12 20:50 21241、创建业务处理类 public class Task ... -
手动利用spring提供的quartz创建定时器
2012-07-12 20:41 3019手动创建并启动定时器方法: /** * & ... -
spring定时器的创建和配置
2012-07-12 20:38 68621、创建业务处理类 public class Palp ... -
spring管理日志的例子
2012-05-07 15:32 813Spring 带给我们的另一个好处就是让我们可以“专心做 ...
相关推荐
**JFreeChart** 是一个Java库,用于生成高质量的图表,包括曲线图、柱状图、折线图、饼图以及甘特图等。它在Java应用和Web应用中广泛使用,尤其是对于数据可视化和报告生成。JFreeChart库不仅支持静态图表,还能够...
JFreeChart是一款强大的Java图表库,它为开发者提供了在Java应用程序和Web应用中创建各种复杂图表的能力。这个实例是关于如何使用JFreeChart来绘制饼图、柱状图和折线图,并且这些图表能够在Web环境中展示。在这个...
- **在线教程**:网上有许多关于JFreeChart的教程和博客文章,可以帮助开发者快速上手。 总之,JFreeChart是Java开发者进行数据可视化的得力工具,尽管文档是英文的,但对于有一定基础的开发者来说,这不应成为...
Java 利用 JFreeChart 绘制 Excel 参考 JFreeChart 是一个流行的 Java 图表库,能够生成各种类型的图表,包括折线图、柱状图、饼状图等。下面是使用 JFreeChart 库绘制 Excel 图表的相关知识点: 导包 为了使用 ...
JFreeChart是一款强大的Java图形库,它为开发者提供了一种简单的方式来创建各种复杂的图表,包括折线图、柱状图、饼图、散点图、甘特图等。在Java中,利用JFreeChart可以方便地将数据可视化,这对于数据分析、报告...
java 画图jfreechart.JFreeChart是JAVA平台上的一个开放的图表绘制类库。它完全使用JAVA语言编写,是为applications, applets, servlets 以及JSP等使用所设计。JFreeChart可生成饼图(pie charts)、柱状图(bar ...
这个是我特地开发的一个用JFreeChart开发的用来画图的项目,已经开发成形了各种项目的各种需求的项目,并且自己可以拓展,根据需求修改代码,完成项目的需要。 可以直接下载解压后,import到myeclipse里面,运行: ...
对于常见的统计图表和数据可视化,有许多Java和JavaScript库可以使用,如Java的JFreeChart、JavaFX的ControlsFX,以及JavaScript的D3.js、Chart.js等。这些库提供了丰富的预定义图表类型和自定义选项,可以帮助...
Java Web画图jar包主要指的是用于在Web应用中生成图形的库,如JFreeChart,这是一个非常流行的开源Java库,用于创建高质量的图表。本文将详细介绍JFreeChart库及其在Java Web开发中的应用。 JFreeChart是Java平台上...
在Java编程环境中,JFreeChart是一个非常流行的开源库,它为开发者提供了丰富的图表绘制功能,包括折线图、饼图、柱状图等。在这个"JFreeChart画折线实例"中,我们将深入探讨如何利用JFreeChart库来创建折线图,并将...
Struts2和JFreeChart是两个在Java Web开发中广泛使用的开源库。Struts2是一个强大的MVC(Model-View-Controller)框架,用于构建可维护性和可扩展性极高的Web应用程序,而JFreeChart则是一个用于生成高质量图表的...
**JFreeChart** 是一个强大的Java图形库,用于在应用程序、applets、servlets以及JSP中生成各种类型的图表。这个库的核心在于其模块化的结构,允许开发者根据需要选择和定制图表类型。以下是JFreeChart的主要知识点...
Java web上画图需要用到的。JFreeChart配置安装 1、解压jfreechart_0.9.21.zip到指定位置,其中source是jfreechart的源码,jfreechart-0.9.21-demo.jar 是例子程序(该部分留给大家自己去研究) 2、为了配置成功...
总结起来,"Java_flash_Chart"项目可能是一个利用Java结合图表库,如JFreeChart,创建动态或静态图表的系统,并且具备报表打印功能。开发者通过读取数据源,利用Java的图形和打印API,实现了数据的可视化和报表的...
超好用java第三方包,包含各种画图方法,容易使用
JFreeChart是一款强大的Java图形库,专为开发者设计,用于创建高质量的图表。这款开源工具包使得在Java应用程序中绘制各种复杂图表变得轻而易举,包括柱状图、饼图、线图、散点图、面积图、甘特图以及时间序列图等。...
java根据动态模板生成pdf(包含柱状图)所需jar包 iText+FreeMarker+JFreeChart生成可动态配置的PDF文档。 iText有很强大的PDF处理能力...JFreeChart有这方便的画图API,能画出简单的折线、柱状和饼图,基本能满足需要
通过学习这个教程,你可以熟练地使用JFreeChart为你的Java应用增添丰富的可视化元素,使数据的呈现更加直观和生动。 总结来说,JFreeChart是Java编程中生成图表的强大工具,提供了丰富的功能和灵活性。无论是简单的...
JFreeChart 是一款面向 Java 开发者的免费图形开发类库,主要用于在各种 Java 应用程序(如 application、applets、servlets 和 JSP)中生成图表。它是一款完全开源的项目,遵循 GNU 通用公共许可证 (GPL),确保用户...