iis服务器助手广告
返回顶部
首页 > 资讯 > 精选 >如何通过JFreeChart实现在jsp页面画甘特图
  • 900
分享到

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

2023-06-17 12:06:00 900人浏览 薄情痞子
摘要

小编给大家分享一下如何通过JFreeChart实现在jsp页面画甘特图,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!首先把重要的代码粘出来供大家参考,项目源码和数据库信息表,以及参考的资料和一些资料的网址我就打包放在下面,

小编给大家分享一下如何通过JFreeChart实现在jsp页面画甘特图,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

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

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

package com.angrybirds.DAO;   import java.io.IOException;  import java.io.PrintWriter;  //import java.util.Date;  import java.sql.*;  import java.util.ArrayList;  import java.util.ListIterator;   import javax.servlet.Http.httpsession;   import org.jfree.chart.ChartFactory;  import org.jfree.chart.ChartRenderingInfo;  import org.jfree.chart.ChartUtilities;  import org.jfree.chart.JFreeChart;  import org.jfree.chart.entity.StandardEntityCollection;  import org.jfree.chart.servlet.ServletUtilities;  import org.jfree.data.gantt.Task;  import org.jfree.data.gantt.TaskSeries;  import org.jfree.data.gantt.TaskSeriesCollection;   public class ProgressControl {            public static String createPlanGanttChart(String missionId,String missionName,HttpSession session,PrintWriter pw){                    String fileName = null;          Connection conn = null;          Statement stmt = null;          ResultSet rs = null;          String sql = null;          String sql2 = null;                    ArrayList nameList = new ArrayList();          ArrayList startList = new ArrayList();          ArrayList endList = new ArrayList();                    conn = DB.getConnection();          stmt = DB.getStatement(conn);                    sql = "select * from SQLJ.Pro_control"; // where Task_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 (SQLException e) {              // TODO Auto-generated catch block              e.printStackTrace();          }                    ListIterator iterN = nameList.listIterator();          ListIterator iterS = startList.listIterator();          ListIterator iterE = endList.listIterator();                    TaskSeriesCollection tsc = new TaskSeriesCollection();          TaskSeries tsPlan = new TaskSeries("Plan");                        while(iterN.hasNext()){                            String submissionName = (String)iterN.next();              java.util.Date sDate = (java.util.Date)iterS.next();              java.util.Date eDate = (java.util.Date)iterE.next();                                        if(sDate.before(eDate)){              Task task = new Task(submissionName,sDate,eDate);              tsPlan.add(task);              }              else{}          }              tsc.add(tsPlan);//tsc.add(tsPlan);                                JFreeChart chart = ChartFactory.createGanttChart(missionName + "GanttProject", "Project", "Time", tsc, true, true, true);              ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());                  try {                      fileName = ServletUtilities.saveChartAsPNG(chart, 500, 80+65*nameList.size(), info,session);                  } catch (IOException e) {                      // TODO Auto-generated catch block                      e.printStackTrace();                  }                            try {                      ChartUtilities.writeImageMap(pw, fileName, info,true);                  } catch (IOException e) {                      // TODO Auto-generated catch block                      e.printStackTrace();                  }                            try {                      rs.close();                      stmt.close();                      conn.close();                  } catch (SQLException e) {                      // TODO Auto-generated catch block                      e.printStackTrace();                  }                     pw.flush();          //System.out.println(fileName);          return fileName;      }      public static String createRealGanttChart(String missionId,String missionName,HttpSession session,PrintWriter pw){          String fileName = null;          Connection conn = null;          Statement stmt = null;          ResultSet rs = null;          String sql = null;          String sql2 = null;                    ArrayList nameList = new ArrayList();          ArrayList startList = new ArrayList();          ArrayList endList = new ArrayList();                    conn = DB.getConnection();          stmt = DB.getStatement(conn);                    sql = "select * from SQLJ.Pro_control"; // where Task_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 (SQLException e) {              // TODO Auto-generated catch block              e.printStackTrace();          }          //rs = null;          //System.out.println("over:1");              ListIterator iterN = nameList.listIterator();          ListIterator iterS = startList.listIterator();          ListIterator iterE = endList.listIterator();          TaskSeriesCollection tsc = new TaskSeriesCollection();          //TaskSeries tsPlan = new TaskSeries("Plan");          TaskSeries tsReal = new TaskSeries("Real");          while(iterN.hasNext()){                            String submissionName = (String)iterN.next();              java.util.Date sDate = (java.util.Date)iterS.next();              java.util.Date eDate = (java.util.Date)iterE.next();                                        if(sDate.before(eDate)){                            Task task = new Task(submissionName,sDate,eDate);              tsReal.add(task);              }              else{}                       }              tsc.add(tsReal);//tsc.add(tsPlan);              JFreeChart chart = ChartFactory.createGanttChart(missionName + "GanttProject", "Project", "Time", tsc, true, true, true);              ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());                  try {                      fileName = ServletUtilities.saveChartAsPNG(chart, 500, 80+65*nameList.size(), info,session);                  } catch (IOException e) {                      // TODO Auto-generated catch block                      e.printStackTrace();                  }                  try {                      ChartUtilities.writeImageMap(pw, fileName, info,true);                  } catch (IOException e) {                      // TODO Auto-generated catch block                      e.printStackTrace();                  }                  try {                      rs.close();                      stmt.close();                      conn.close();                  } catch (SQLException e) {                      // TODO Auto-generated catch block                      e.printStackTrace();                  }                     pw.flush();          //System.out.println(fileName);          return fileName;      }  }

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

PlanGantt.jsp

<%@ page language="java" import="java.util.*,java.io.*" %> <%@ page import="com.angrybirds.DAO.ProgressControl"%> <%  String path = request.getContextPath();  String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";  %>   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="zh-CN"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>AngryBirds</title> <link href="CSS.css" rel="stylesheet" type="text/css" />     <meta http-equiv="pragma" content="no-cache">     <meta http-equiv="cache-control" content="no-cache">     <meta http-equiv="expires" content="0">          <meta http-equiv="keyWords" content="keyword1,keyword2,keyword3">     <meta http-equiv="description" content="This is my page"> </head> <body> <div class="size">   <div class="header">     <div class="header01">       <div class="loGo"> <img src="image/img_15.bmp" alt="" /> </div>     </div>     <div class="cmainimg"> <img alt="" src="image/img_73.jpg" /> </div>     <div class="mnav"> <img class="mnimgl" src="image/img_37.jpg" alt="" /> <img class="mnimgr" src="image/img_50.jpg" alt="" />       <div class="mnm">         <ul>                   </ul>       </div>     </div>   </div>   <div class="content">     <div class="submenu" style="left: 0px; top: 0px"> <img class="snimgl" src="image/img_96.jpg" alt="" /> <img class="snimgr" src="image/img_107.jpg" alt="" />       <div class="subtext"> You are here:Home </div>       <div class="subimag" style="width: 41px; height: 51px">         <ul>           <li>1</li>           <li>2</li>           <li>3</li>         </ul>       </div>     </div>     <div class="mcontent">        <!--***************************************************************************&times;&oacute;/-->        <!--***************************************************************************&Oacute;&Ograve;/-->       <div align="center"  class="mcmid3">  <%           String missionId = "1";          String filename = ProgressControl.createPlanGanttChart(missionId,"AllProject",session,new PrintWriter(out));          String graphURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + filename;      %>           <img src="<%=graphURL %>" width="500" height="300" border="0" usemap="#<%=filename %>">       </div>       <!--***************************************************************************/-->     </div>   </div>   <div class="footer"> <img class="mnimgl" src="image/img_275.jpg" alt="" /> <img class="mnimgr" src="image/img_291.jpg" alt="" /> <a href="http://www.88WEB.org/">HOME</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="http://www.88web.org/">ABOUT US</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="http://www.88web.org/">GALLERY</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="http://www.88web.org/">FAQ</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="http://www.88web.org/">SERVICES</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="http://www.88web.org/">CONTACT</a> <br/>     <font color="#333333">Copyright 2009 Your Website | <a style="color: #333333" href="http://www.88web.org/css-templates/">CSS Template</a> by <a style="color: #333333" href="http://www.88web.org/">AngryBirds</a></font></div> </div> </body> </html>

RealGantt.jsp

<%@ page language="java" import="java.util.*,java.io.*" pageEncoding="GBK"%> <%@ page import="com.angrybirds.DAO.ProgressControl"%> <%  String path = request.getContextPath();  String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";  %>  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="zh-CN"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>AngryBirds</title> <link href="css.css" rel="stylesheet" type="text/css" />     <meta http-equiv="pragma" content="no-cache">     <meta http-equiv="cache-control" content="no-cache">     <meta http-equiv="expires" content="0">          <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">     <meta http-equiv="description" content="This is my page"> </head> <body> <div class="size">   <div class="header">     <div class="header01">       <div class="logo"> <img src="image/img_15.bmp" alt="" /> </div>     </div>     <div class="cmainimg"> <img alt="" src="image/img_73.jpg" /> </div>     <div class="mnav"> <img class="mnimgl" src="image/img_37.jpg" alt="" /> <img class="mnimgr" src="image/img_50.jpg" alt="" />       <div class="mnm">         <ul>                     </ul>       </div>     </div>   </div>   <div class="content">     <div class="submenu" style="left: 0px; top: 0px"> <img class="snimgl" src="image/img_96.jpg" alt="" /> <img class="snimgr" src="image/img_107.jpg" alt="" />       <div class="subtext"> You are here:Home </div>       <div class="subimag" style="width: 41px; height: 51px">         <ul>           <li>1</li>           <li>2</li>           <li>3</li>         </ul>       </div>     </div>     <div class="mcontent">        <!--***************************************************************************左/-->             <!--***************************************************************************右/-->       <div align="center" class="mcmid3">     <%           String missionId = "1";          String filename = ProgressControl.createRealGanttChart(missionId,"AllProject",session,new PrintWriter(out));          String graphURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + filename;      %>           <img src="<%=graphURL %>" width="500" height="300" border="0" usemap="#<%=filename %>">       </div>       <!--***************************************************************************/-->     </div>   </div>   <div class="footer"> <img class="mnimgl" src="image/img_275.jpg" alt="" /> <img class="mnimgr" src="image/img_291.jpg" alt="" /> <a href="http://www.88web.org/">HOME</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="http://www.88web.org/">ABOUT US</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="http://www.88web.org/">GALLERY</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="http://www.88web.org/">FAQ</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="http://www.88web.org/">SERVICES</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="http://www.88web.org/">CONTACT</a> <br/>     <font color="#333333">Copyright 2009 Your Website | <a style="color: #333333" href="http://www.88web.org/css-templates/">CSS Template</a> by <a style="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页面画甘特图

看完了这篇文章,相信你对“如何通过JFreeChart实现在jsp页面画甘特图”有了一定的了解,如果想了解更多相关知识,欢迎关注编程网精选频道,感谢各位的阅读!

--结束END--

本文标题: 如何通过JFreeChart实现在jsp页面画甘特图

本文链接: https://www.lsjlt.com/news/288763.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何通过JFreeChart实现在jsp页面画甘特图
    小编给大家分享一下如何通过JFreeChart实现在jsp页面画甘特图,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!首先把重要的代码粘出来供大家参考,项目源码和数据库信息表,以及参考的资料和一些资料的网址我就打包放在下面,...
    99+
    2023-06-17
  • 如何通过python-turtle库实现绘制图画
    这篇文章给大家分享的是有关如何通过python-turtle库实现绘制图画的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1 图1第一个图是蚊香,感兴趣的小伙伴可以自己尝试在python中用turtle库绘制一下。...
    99+
    2023-06-22
  • JSP如何实现页面验证码
    这篇文章主要为大家展示了“JSP如何实现页面验证码”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JSP如何实现页面验证码”这篇文章吧。 JSP页面验证码实现 ...
    99+
    2024-04-02
  • 如何通过PHP控制JavaScript实现页面跳转
    在网页开发中,我们经常需要在页面中添加跳转链接。常见的方式是使用HTML中的标签来实现跳转。另一种方式是通过JavaScript实现。不过,如果我们需要在后台PHP中控制跳转链接,该怎么办呢?本文将介绍如何通过PHP控制JavaScript...
    99+
    2023-05-14
    php javascript 跳转页面
  • 利用Spring boot 如何实现跳转到jsp页面
    这篇文章给大家介绍利用Spring boot 如何实现跳转到jsp页面,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。@Controller注解application.properties文件中配置# 配置jsp文件的位...
    99+
    2023-05-31
    springboot 页面跳转 jsp
  • vue如何通过点击事件实现页面跳转详解
    目录前言this.$router.push()this.$router.push()中的参数规则参数的接收注意补充:VUE实现从一个页面跳转到另一个页面的指定位置总结前言 页面跳转,...
    99+
    2024-04-02
  • VUE如何实现单页面切换动画效果
    这篇文章主要介绍VUE如何实现单页面切换动画效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!代码如下:// 视图切换动画逻辑 let history ...
    99+
    2024-04-02
  • 如何通过CSS实现单页面应用的平滑切换效果
    在现代Web开发中,单页面应用已经成为了一种流行的开发模式。用户在单页面应用中进行不同的操作时,页面的内容会进行平滑的切换,给用户带来良好的用户体验。本文将介绍如何使用CSS来实现单页面应用的平滑切换效果,并提供具体的代码示例。一、使用CS...
    99+
    2023-10-21
    CSS 单页面应用 平滑切换
  • Python如何实现图像特效中的油画效果
    小编给大家分享一下Python如何实现图像特效中的油画效果,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一 基本原理如下面的两幅图所示,油画用对了地方会使得图像一...
    99+
    2023-06-22
  • 如何利用Storage Event实现页面间通信
    这篇文章主要介绍了如何利用Storage Event实现页面间通信,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。我们都知道触发window.onstorage必须满足以下两个...
    99+
    2023-06-09
  • Java编程之如何通过JSP实现头像自定义上传
    目录开发概述开发环境开发过程1、JSP前台页面样式图:JS操作2、数据库的设计数据库表:实体类:UsersInfo.java3、数据库操作UsersMapperUsersMapper...
    99+
    2022-12-19
    java实现头像上传 jsp头像自定义上传 jsp实现更换头像功能
  • 如何通过纯CSS实现网页的平滑滚动背景图效果
    在现代网页设计中,背景图的运用可以为网页增添更多的美感和活力。而通过CSS实现平滑滚动背景图效果,则可以使整个页面更加流畅和吸引人。本文将详细介绍如何通过纯CSS实现这一效果,并提供具体的代码示例。首先,我们需要准备一张背景图,并将其添加到...
    99+
    2023-10-21
    平滑滚动 纯CSS 背景图效果
  • 如何实现圣诞节倒计时页面特效
    这篇文章主要讲解了“如何实现圣诞节倒计时页面特效”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何实现圣诞节倒计时页面特效”吧!一起看下效果图:实现的代码。...
    99+
    2024-04-02
  • 怎么在HTML5中通过自定义元素实现播放焦点图动画
    这期内容当中小编将会给大家带来有关怎么在HTML5中通过自定义元素实现播放焦点图动画,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。HTML代码<div class="parall...
    99+
    2023-06-09
  • 如何通过Jetpack Compose实现双击点赞动画效果
    这篇文章主要介绍如何通过Jetpack Compose实现双击点赞动画效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!实现步骤先红色画个爱心Icon(    Ico...
    99+
    2023-06-28
  • jQuery如何实现鼠标经过显示动画边框特效
    这篇文章将为大家详细讲解有关jQuery如何实现鼠标经过显示动画边框特效,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。效果图:代码如下:<!DOCTYPE ...
    99+
    2024-04-02
  • 如何在Kotlin中通过lazy实现单例
    如何在Kotlin中通过lazy实现单例?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。单例的实现方法,可以通过同伴对象,或者 lazy。示例:class Hello priva...
    99+
    2023-05-31
    kotlin 单例 lazy
  • vs2019 MFC如何实现office界面的画图小项目
    这篇文章主要为大家展示了“vs2019 MFC如何实现office界面的画图小项目”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vs2019 MFC如何实现office界面的画图小项目”这篇文章...
    99+
    2023-06-15
  • 如何使用HTML+CSS实现页面加载动画效果
    这篇“如何使用HTML+CSS实现页面加载动画效果”除了程序员外大部分人都不太理解,今天小编为了让大家更加理解“如何使用HTML+CSS实现页面加载动画效果”,给大家总结了以下内容,具有一定借鉴价值,内容详...
    99+
    2024-04-02
  • 如何通过Css Flex 弹性布局实现页面元素的垂直居中
    在网页设计中,经常会遇到需要将页面元素进行垂直居中的情况。CSS Flex弹性布局是一种优雅简洁且灵活的布局方式,能够轻松实现页面元素的垂直居中。本文将详细介绍如何使用CSS Flex布局实现页面元素的垂直居中,并提供具体的代码示例。一、基...
    99+
    2023-10-21
    flex布局 CSS编程 垂直居中
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作