如何通过JFreeChart实现在jsp页面画甘特图(jfreechart,jsp,编程语言)

时间:2024-05-01 16:09:16 作者 : 石家庄SEO 分类 : 编程语言
  • TAG :

首先把重要的代码粘出来供大家参考,项目源码和数据库信息表,以及参考的资料和一些资料的网址我就打包放在下面,大家可以下载后学习参考。

ProgressControl.java//完成从数据库读数据,生成甘特图。

packagecom.angrybirds.DAO;importjava.io.IOException;importjava.io.PrintWriter;//importjava.util.Date;importjava.sql.*;importjava.util.ArrayList;importjava.util.ListIterator;importjavax.servlet.http.HttpSession;importorg.jfree.chart.ChartFactory;importorg.jfree.chart.ChartRenderingInfo;importorg.jfree.chart.ChartUtilities;importorg.jfree.chart.JFreeChart;importorg.jfree.chart.entity.StandardEntityCollection;importorg.jfree.chart.servlet.ServletUtilities;importorg.jfree.data.gantt.Task;importorg.jfree.data.gantt.TaskSeries;importorg.jfree.data.gantt.TaskSeriesCollection;publicclassProgressControl{publicstaticStringcreatePlanGanttChart(StringmissionId,StringmissionName,HttpSessionsession,PrintWriterpw){StringfileName=null;Connectionconn=null;Statementstmt=null;ResultSetrs=null;Stringsql=null;Stringsql2=null;ArrayListnameList=newArrayList();ArrayListstartList=newArrayList();ArrayListendList=newArrayList();conn=DB.getConnection();stmt=DB.getStatement(conn);sql="select*fromSQLJ.Pro_control";//whereTask_id='"+missionId+"'";//System.out.println(sql);rs=DB.getResultSet(stmt,sql);try{while(rs.next()){nameList.add(rs.getString("Task_name"));startList.add(rs.getDate("Plan_starttime"));endList.add(rs.getDate("Plan_endtime"));}}catch(SQLExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}ListIteratoriterN=nameList.listIterator();ListIteratoriterS=startList.listIterator();ListIteratoriterE=endList.listIterator();TaskSeriesCollectiontsc=newTaskSeriesCollection();TaskSeriestsPlan=newTaskSeries("Plan");while(iterN.hasNext()){StringsubmissionName=(String)iterN.next();java.util.DatesDate=(java.util.Date)iterS.next();java.util.DateeDate=(java.util.Date)iterE.next();if(sDate.before(eDate)){Tasktask=newTask(submissionName,sDate,eDate);tsPlan.add(task);}else{}}tsc.add(tsPlan);//tsc.add(tsPlan);JFreeChartchart=ChartFactory.createGanttChart(missionName+"GanttProject","Project","Time",tsc,true,true,true);ChartRenderingInfoinfo=newChartRenderingInfo(newStandardEntityCollection());try{fileName=ServletUtilities.saveChartAsPNG(chart,500,80+65*nameList.size(),info,session);}catch(IOExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}try{ChartUtilities.writeImageMap(pw,fileName,info,true);}catch(IOExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}try{rs.close();stmt.close();conn.close();}catch(SQLExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}pw.flush();//System.out.println(fileName);returnfileName;}publicstaticStringcreateRealGanttChart(StringmissionId,StringmissionName,HttpSessionsession,PrintWriterpw){StringfileName=null;Connectionconn=null;Statementstmt=null;ResultSetrs=null;Stringsql=null;Stringsql2=null;ArrayListnameList=newArrayList();ArrayListstartList=newArrayList();ArrayListendList=newArrayList();conn=DB.getConnection();stmt=DB.getStatement(conn);sql="select*fromSQLJ.Pro_control";//whereTask_id='"+missionId+"'";//System.out.println(sql);rs=DB.getResultSet(stmt,sql);try{while(rs.next()){nameList.add(rs.getString("Task_name"));startList.add(rs.getDate("Reality_starttime"));endList.add(rs.getDate("Reality_endtime"));}}catch(SQLExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}//rs=null;//System.out.println("over:1");ListIteratoriterN=nameList.listIterator();ListIteratoriterS=startList.listIterator();ListIteratoriterE=endList.listIterator();TaskSeriesCollectiontsc=newTaskSeriesCollection();//TaskSeriestsPlan=newTaskSeries("Plan");TaskSeriestsReal=newTaskSeries("Real");while(iterN.hasNext()){StringsubmissionName=(String)iterN.next();java.util.DatesDate=(java.util.Date)iterS.next();java.util.DateeDate=(java.util.Date)iterE.next();if(sDate.before(eDate)){Tasktask=newTask(submissionName,sDate,eDate);tsReal.add(task);}else{}}tsc.add(tsReal);//tsc.add(tsPlan);JFreeChartchart=ChartFactory.createGanttChart(missionName+"GanttProject","Project","Time",tsc,true,true,true);ChartRenderingInfoinfo=newChartRenderingInfo(newStandardEntityCollection());try{fileName=ServletUtilities.saveChartAsPNG(chart,500,80+65*nameList.size(),info,session);}catch(IOExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}try{ChartUtilities.writeImageMap(pw,fileName,info,true);}catch(IOExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}try{rs.close();stmt.close();conn.close();}catch(SQLExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}pw.flush();//System.out.println(fileName);returnfileName;}}

我把计划任务和实际任务分开画的甘特图,所以有两个甘特图的jsp页面

PlanGantt.jsp

<%@pagelanguage="java"import="java.util.*,java.io.*"%><%@pageimport="com.angrybirds.DAO.ProgressControl"%><%Stringpath=request.getContextPath();StringbasePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="http://www.w3.org/1999/xhtml"lang="zh-CN"><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"/><title>AngryBirds</title><linkhref="css.css"rel="stylesheet"type="text/css"/><metahttp-equiv="pragma"content="no-cache"><metahttp-equiv="cache-control"content="no-cache"><metahttp-equiv="expires"content="0"><metahttp-equiv="keywords"content="keyword1,keyword2,keyword3"><metahttp-equiv="description"content="Thisismypage"></head><body><divclass="size"><divclass="header"><divclass="header01"><divclass="logo"><imgsrc="image/img_15.bmp"alt=""/></div></div><divclass="cmainimg"><imgalt=""src="image/img_73.jpg"/></div><divclass="mnav"><imgclass="mnimgl"src="image/img_37.jpg"alt=""/><imgclass="mnimgr"src="image/img_50.jpg"alt=""/><divclass="mnm"><ul></ul></div></div></div><divclass="content"><divclass="submenu"style="left:0px;top:0px"><imgclass="snimgl"src="image/img_96.jpg"alt=""/><imgclass="snimgr"src="image/img_107.jpg"alt=""/><divclass="subtext">Youarehere:Home</div><divclass="subimag"style="width:41px;height:51px"><ul><li>1</li><li>2</li><li>3</li></ul></div></div><divclass="mcontent"><!--***************************************************************************&times;&oacute;/--><!--***************************************************************************&Oacute;&Ograve;/--><divalign="center"class="mcmid3"><%StringmissionId="1";Stringfilename=ProgressControl.createPlanGanttChart(missionId,"AllProject",session,newPrintWriter(out));StringgraphURL=request.getContextPath()+"/servlet/DisplayChart?filename="+filename;%><imgsrc="<%=graphURL%>"width="500"height="300"border="0"usemap="#<%=filename%>"></div><!--***************************************************************************/--></div></div><divclass="footer"><imgclass="mnimgl"src="image/img_275.jpg"alt=""/><imgclass="mnimgr"src="image/img_291.jpg"alt=""/><ahref="http://www.88web.org/">HOME</a>&nbsp;&nbsp;|&nbsp;&nbsp;<ahref="http://www.88web.org/">ABOUTUS</a>&nbsp;&nbsp;|&nbsp;&nbsp;<ahref="http://www.88web.org/">GALLERY</a>&nbsp;&nbsp;|&nbsp;&nbsp;<ahref="http://www.88web.org/">FAQ</a>&nbsp;&nbsp;|&nbsp;&nbsp;<ahref="http://www.88web.org/">SERVICES</a>&nbsp;&nbsp;|&nbsp;&nbsp;<ahref="http://www.88web.org/">CONTACT</a><br/><fontcolor="#333333">Copyright2009YourWebsite|<astyle="color:#333333"href="http://www.88web.org/css-templates/">CSSTemplate</a>by<astyle="color:#333333"href="http://www.88web.org/">AngryBirds</a></font></div></div></body></html>

RealGantt.jsp

<%@pagelanguage="java"import="java.util.*,java.io.*"pageEncoding="GBK"%><%@pageimport="com.angrybirds.DAO.ProgressControl"%><%Stringpath=request.getContextPath();StringbasePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="http://www.w3.org/1999/xhtml"lang="zh-CN"><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"/><title>AngryBirds</title><linkhref="css.css"rel="stylesheet"type="text/css"/><metahttp-equiv="pragma"content="no-cache"><metahttp-equiv="cache-control"content="no-cache"><metahttp-equiv="expires"content="0"><metahttp-equiv="keywords"content="keyword1,keyword2,keyword3"><metahttp-equiv="description"content="Thisismypage"></head><body><divclass="size"><divclass="header"><divclass="header01"><divclass="logo"><imgsrc="image/img_15.bmp"alt=""/></div></div><divclass="cmainimg"><imgalt=""src="image/img_73.jpg"/></div><divclass="mnav"><imgclass="mnimgl"src="image/img_37.jpg"alt=""/><imgclass="mnimgr"src="image/img_50.jpg"alt=""/><divclass="mnm"><ul></ul></div></div></div><divclass="content"><divclass="submenu"style="left:0px;top:0px"><imgclass="snimgl"src="image/img_96.jpg"alt=""/><imgclass="snimgr"src="image/img_107.jpg"alt=""/><divclass="subtext">Youarehere:Home</div><divclass="subimag"style="width:41px;height:51px"><ul><li>1</li><li>2</li><li>3</li></ul></div></div><divclass="mcontent"><!--***************************************************************************左/--><!--***************************************************************************右/--><divalign="center"class="mcmid3"><%StringmissionId="1";Stringfilename=ProgressControl.createRealGanttChart(missionId,"AllProject",session,newPrintWriter(out));StringgraphURL=request.getContextPath()+"/servlet/DisplayChart?filename="+filename;%><imgsrc="<%=graphURL%>"width="500"height="300"border="0"usemap="#<%=filename%>"></div><!--***************************************************************************/--></div></div><divclass="footer"><imgclass="mnimgl"src="image/img_275.jpg"alt=""/><imgclass="mnimgr"src="image/img_291.jpg"alt=""/><ahref="http://www.88web.org/">HOME</a>&nbsp;&nbsp;|&nbsp;&nbsp;<ahref="http://www.88web.org/">ABOUTUS</a>&nbsp;&nbsp;|&nbsp;&nbsp;<ahref="http://www.88web.org/">GALLERY</a>&nbsp;&nbsp;|&nbsp;&nbsp;<ahref="http://www.88web.org/">FAQ</a>&nbsp;&nbsp;|&nbsp;&nbsp;<ahref="http://www.88web.org/">SERVICES</a>&nbsp;&nbsp;|&nbsp;&nbsp;<ahref="http://www.88web.org/">CONTACT</a><br/><fontcolor="#333333">Copyright2009YourWebsite|<astyle="color:#333333"href="http://www.88web.org/css-templates/">CSSTemplate</a>by<astyle="color:#333333"href="http://www.88web.org/">AngryBirds</a></font></div></div></body></html>

此图为效果图:(由于我用的是DB2所以时间显示有点问题,如果要想甘特图有更好的显示效果可以参考API文档中相关类和方法

地址:http://www.jfree.org/jfreechart/api/javadoc/index.html)

如何通过JFreeChart实现在jsp页面画甘特图

 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:如何通过JFreeChart实现在jsp页面画甘特图的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:CSS中的font-weight属性有什么用下一篇:

12 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18