国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

Java程序中用JFreeChart制作圖形報(bào)表

2019-11-18 15:43:44
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
  一、需求分析

  我家領(lǐng)導(dǎo)認(rèn)為,在是否嫁給我做老婆的問(wèn)題上,應(yīng)該有更加科學(xué)的決策模型。假如能夠?qū)⑻焯斓母星樯盍炕乙詴r(shí)間為X軸,生成數(shù)據(jù)報(bào)表,就可以為她的決策提供數(shù)據(jù)支持。
秉著以領(lǐng)導(dǎo)意志為導(dǎo)向的基本原則,開發(fā)了本軟件,為家庭信息化建設(shè)提供新的思路。

  二、系統(tǒng)概述

  本系統(tǒng)的基本功能是,接收用戶天天的輸入并保存,月/季度/年度末生成數(shù)據(jù)折線圖、周期環(huán)比柱狀圖。由于投入資金有限(不讓我往外掏錢就已經(jīng)很不錯(cuò)了),所以本軟件的1.0版采用單機(jī)應(yīng)用程序,使用access數(shù)據(jù)庫(kù)。假如市場(chǎng)推廣情況良好,不排除推出大型FRP軟件(Family Resource PRoject)的可能,屆時(shí)將包含KRM(Kin Relation Manage,家族關(guān)系治理)、HA(House Automatization,家庭自動(dòng)化)等模塊,利用強(qiáng)大的J2EE框架,為家庭信息化建設(shè)提供完整解決方案。

  程序生成的目標(biāo)圖片效果如下:

Java程序中用JFreeChart制作圖形報(bào)表(圖一)
  三、系統(tǒng)要求

  1、 開源工具包jfreechart-1.0.0-pre1.jar和它自己要使用的工具包jcommon-1.0.0-pre1.jar

  下載地址:http://sourceforge.net/projects/jfreechart/

  2、 女朋友一個(gè)。

  請(qǐng)自行預(yù)備,暫不提供下載

  下面主要講述系統(tǒng)是如何從數(shù)據(jù)庫(kù)中提取數(shù)據(jù),然后生成圖形報(bào)表的。(終于進(jìn)入正題了。)

  數(shù)據(jù)表結(jié)構(gòu):

curve_id流水號(hào)自動(dòng)增長(zhǎng)curve_ownervarchar(30)區(qū)分是老公的數(shù)據(jù)還是老婆的數(shù)據(jù)curve_centdouble當(dāng)天分?jǐn)?shù)curve_yearint年curve_monthint月curve_dayint日notetext備注
  用于封裝每個(gè)分?jǐn)?shù)的值對(duì)象如下:

package org.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 org.bromon.fiona.curve.util;

//一大堆import

public class DrawPic
{
  /**
   *根據(jù)時(shí)間查詢數(shù)據(jù),將所得到的數(shù)據(jù)封裝成TimeSeriesCollection對(duì)象
   *TimeSeriesCollection是JfreeChart中定義的類的對(duì)象
   *本方法將被后面的draw方法調(diào)用
   *@param int 要查詢哪一年
   *@param int 要查詢哪一月
   *@return TimeSeriesCollection
  */

  public TimeSeriesCollection getData(int year,int month)
  {
   //fiona的數(shù)據(jù)集合,其中存放的是上面定義過(guò)的CurveVo值對(duì)象
   //這些值對(duì)象的值來(lái)自于數(shù)據(jù)庫(kù),相關(guān)代碼是最常見的jdbc內(nèi)容,請(qǐng)自行完成

   List dataOfFiona=new ArrayList();

   //Bromon的數(shù)據(jù)集合

   List dataOfBromon=new ArrayList();

   //構(gòu)造要返回的對(duì)象

   TimeSeriesCollection result=new TimeSeriesCollection();

   //這兩個(gè)對(duì)象,分別對(duì)應(yīng)一條曲線,構(gòu)造函數(shù)的參數(shù),將顯示在圖片的下方

   TimeSeries fiona=new TimeSeries("fiona");
   TimeSeries bromon=new TimeSeries("bromon");
   CurveVo cv=null;
   //遍歷Fiona的數(shù)據(jù)集,填充fiona對(duì)象

   for(int i=0;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=0;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);
  }
  //生成圖表的方法,圖表數(shù)據(jù)來(lái)自上面的getData方法

  public String draw(int y,int m)
  {
   String result=null;
   String title="Bromon & Fiona的愛情走勢(shì)圖";
   String suBTitle=y+"年"+m+"月";
   String domain="時(shí)間";//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, 20));
   chart.addSubtitle(subtitle);
   chart.setTitle(new TextTitle(title, new Font("宋體", Font.ITALIC, 20)));
   chart.setBackgroundPaint(new GradientPaint(0, 0, Color.white, 0, 1000, 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), 100, chart, 1000, 600);//寬1000,高600
   } catch (Exception e)
   {
    e.printStackTrace();
   }
   result=fileName;
   return result;
  }

  //ok,測(cè)試一下

  public static void main(String args[])
  {
    new DrawPic().draw(2005,3);
  }
}

   生成環(huán)比柱狀圖的相關(guān)內(nèi)容,整理后放出。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 东台市| 拉萨市| 丘北县| 灌南县| 视频| 赣州市| 富平县| 寿光市| 静宁县| 临澧县| 集贤县| 商城县| 崇义县| 琼中| 上高县| 东光县| 班戈县| 唐河县| 通道| 普陀区| 道孚县| 农安县| 德令哈市| 大余县| 吴川市| 屏山县| 晴隆县| 金溪县| 淳安县| 东乌珠穆沁旗| 巴林右旗| 定兴县| 芜湖县| 乌兰浩特市| 景德镇市| 麟游县| 勃利县| 句容市| 木兰县| 滦平县| 巴南区|