如何通过JFreeChart实现在jsp页面画甘特图
导读:本文共7183字符,通常情况下阅读需要24分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: 首先把重要的代码粘出来供大家参考,项目源码和数据库信息表,以及参考的资料和一些资料的网址我就打包放在下面,大家可以下载后学习参考。ProgressControl.java//完成从数据库读数据,生成甘特图。packagecom.angrybirds.DAO;importjava.io.IOException;importjava.io.PrintWriter;/... ...
音频解说
目录
(为您整理了一些要点),点击可以直达。首先把重要的代码粘出来供大家参考,项目源码和数据库信息表,以及参考的资料和一些资料的网址我就打包放在下面,大家可以下载后学习参考。
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"><!--***************************************************************************×ó/--><!--***************************************************************************ÓÒ/--><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> | <ahref="http://www.88web.org/">ABOUTUS</a> | <ahref="http://www.88web.org/">GALLERY</a> | <ahref="http://www.88web.org/">FAQ</a> | <ahref="http://www.88web.org/">SERVICES</a> | <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> | <ahref="http://www.88web.org/">ABOUTUS</a> | <ahref="http://www.88web.org/">GALLERY</a> | <ahref="http://www.88web.org/">FAQ</a> | <ahref="http://www.88web.org/">SERVICES</a> | <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)
</div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:
如何通过JFreeChart实现在jsp页面画甘特图的详细内容,希望对您有所帮助,信息来源于网络。