您现在的位置是:首页
>
成本报表分析的一般程序是什么 Java程序中用JFreeChart制作图形报表
Java程序中用JFreeChart制作图形报表 一 需求分析 我家领导认为 在是否嫁给我做老婆的问题上 应该有更加科学的决策模型 如果能够将每天的感情生活量化 且以时间为X轴 生成数据报

Java程序中用JFreeChart制作图形报表
一 需求分析 我家领导认为 在是否嫁给我做老婆的问题上 应该有更加科学的决策模型 如果能够将每天的感情生活量化 且以时间为X轴 生成数据报表 就可以为她的决策提供数据支持 秉著以领导意志为导向的基本原则 开发了本软件 为家庭信息化建设提供新的思路 二 系统概述 本系统的基本功能是 接收用户每天的输入并保存 月/季度/年度末生成数据折线图 周期环比柱状图 由于投入资金有限(不让我往外掏钱就已经很不错了) 所以本软件的 版采用单机应用程序 使用Access数据库 如果市场推广情况良好 不排除推出大型FRP软件(Family Resource Project)的可能 届时将包含KRM(Kin Relation Manage 家族关系管理) HA(House Automatization 家庭自动化)等模块 利用强大的J EE框架 为家庭信息化建设提供完整解决方案 程序生成的目标图片效果如下 三 系统要求 开源工具包jfreechart pre jar和它自己要使用的工具包jmon pre jar 下载地址 女朋友一个 请自行准备 暂不提供下载 下面主要讲述系统是如何从数据库中提取数据 然后生成图形报表的 (终于进入正题了 ) 数据表结构 用于封装每个分数的值对象如下 package bromon fiona curve dao; import java util *; public class CurveVo { private int year; private int month; private int day; private double cent; private String note; private String owner; //get/set方法 ………… } 生成图片的关键代码如下 package bromon fiona curve util; //一大堆import public class DrawPic { /** *根据时间查询数据 将所得到的数据封装成TimeSeriesCollection对象 *TimeSeriesCollection是JfreeChart中定义的类的对象 *本方法将被后面的draw方法调用 *@param int 要查询哪一年 *@param int 要查询哪一月 *@return TimeSeriesCollection */ public TimeSeriesCollection getData(int year int month) { //fiona的数据集合 其中存放的是上面定义过的CurveVo值对象 //这些值对象的值来自于数据库 相关代码是最常见的jdbc内容 请自行完成 List dataOfFiona=new ArrayList(); //Bromon的数据集合 List dataOfBromon=new ArrayList(); //构造要返回的对象 TimeSeriesCollection result=new TimeSeriesCollection(); //这两个对象 分别对应一条曲线 构造函数的参数 将显示在图片的下方 TimeSeries fiona=new TimeSeries( fiona ); TimeSeries bromon=new TimeSeries( bromon ); CurveVo cv=null; //遍历Fiona的数据集 填充fiona对象 for(int i= ;i<dataOfFiona size();i++) { cv=(CurveVo)dataOfFiona get(i); fiona add(new TimeSeriesDataItem(new Day(cv getDay() cv getMonth() cv getYear()) new Double(cv getCent()))); } result addSeries(fiona); for(int i= ;i<dataOfBromon size();i++) { cv=(CurveVo)dataOfBromon get(i); bromon add(new TimeSeriesDataItem(new Day(cv getDay() cv getMonth() cv getYear()) new Double(cv getCent()))); } result addSeries(bromon); } //生成图表的方法 图表数据来自上面的getData方法 public String draw(int y int m) { String result=null; String title= Bromon & Fiona的爱情走势图 ; String subTitle=y+ 年 +m+ 月 ; String domain= 时间 ;//x轴 String range= 分值 ;//y轴 TimeSeriesCollection data =this getData(y m); JFreeChart chart =ChartFactory createTimeSeriesChart(title domain range data true true false); TextTitle subtitle =new TextTitle(subTitle new Font( 宋体 Font BOLD )); chart addSubtitle(subtitle); chart setTitle(new TextTitle(title new Font( 宋体 Font ITALIC ))); chart setBackgroundPaint(new GradientPaint( Color white Color white)); c setTime(new Date()); String fileName= c:\pics\ +y+ +m+ jpg ;//保存为位置 try { File f=new File( c:\pics ); if(!f exists()) { f mkdir(); } ChartUtilities saveChartAsJPEG(new File(fileName) chart );//宽 高 } catch (Exception e) { e printStackTrace(); } result=fileName; return result; } //ok 测试一下 public static void main(String args[]) { new DrawPic() draw( ); } } 生成环比柱状图的相关内容 整理后放出 JfreeChart的绘图功能很强大 但是API的编写有些地方让人很不舒服 很多元素要定制不容易 如果有更好的API的话 我很愿意使用 当然 免费是个很重要的前提 lishixinzhi/Article/program/Java/JSP/201311/19686 很赞哦! (1050)