java制作甘特图
今日来做一下甘特图。网上搜到了这个源码,但是导的jar包,并没有给我。swiftganttdemo
但是名为swiftgantt制作;所以灵机一动在网上搜到了swiftangantt组件;在组件中找到了JAR包。
import java.io.IOException;
import java.util.GregorianCalendar;
import com.yuxingwang.gantt.model.GanttModel;
import com.yuxingwang.gantt.model.Task;
import com.yuxingwang.gantt.ui.TimeUnit;


代码如下:
/**
* @author :leleChang
* @date :Created in 2020/5/8 18:48
* @description:
* @modified By:
*/
public class Swif {
public static <GanttChart> void main(String[] args) throws IOException {
//1. 首先初始化一个甘特图的主类com.yuxingwang.gantt.GanttChart,
//是一个继承自javax.swing.JScrollPanel的Swing的组件,通过它就可以用来显示甘特图:
com.yuxingwang.gantt.GanttChart gantt = new com.yuxingwang.gantt.GanttChart(); //2. 设置甘特图的时间刻度的单位,如以星期为单位,则时间轴上的每一刻度代表一个星期:
gantt.setTimeUnit(TimeUnit.Day); //3. 配置甘特图,在这里您可以通过Config类配置您的甘特图,
//您可以设置甘特图各个元素的颜色,宽度等,详细配置项请参考API文档中的Config类的说明。
//Config config = gantt.getConfig();
//config.setWorkingTimeBackColor(Color.red); //4. 创建甘特图的数据模型GanttModel,
//所有的您要显示的项目任务信息都通过GanttModel来提供给GanttChart对象。
GanttModel model = new GanttModel(); //5. 设置项目开始时间和结束时间:
model.setKickoffTime(new GregorianCalendar(2007, 1, 4));
model.setDeadline(new GregorianCalendar(2007, 1, 15)); //6. 创建甘特图的基本元素:任务对象Task。一个Task对象在甘特图中表现为一条横线。
//每个Task对象都可以包含任意多的子Task对象,形成树状的任务模型。如果一个Task对象包含子Task,
//则自动成为对象组,对象组仍然是Task对象,但是在甘特图中显示为不同的形状。
//如下例,taskGroup就是任务组,包含了两个子任务,task1和task2:
Task taskGroup = new Task("Changlele's Work", new GregorianCalendar(2007, 1, 4), new GregorianCalendar(2007, 1, 15));
Task task1 = new Task("Sub-task 1 java", new GregorianCalendar(2007, 1, 4), new GregorianCalendar(2007, 1, 8));
Task task2 = new Task("Sub-task 2 python", new GregorianCalendar(2007, 1, 8), new GregorianCalendar(2007, 1, 15)); task1.setBackcolor(Color.CYAN);
task1.setBackcolor(Color.green);
taskGroup.add(new Task[]{task1, task2}); //7. 指定任务之间的依赖关系。如果一项任务需要在另一项任务完成之后才能开始,
//那么需要将另一项任务设为此任务的前置任务。:
task2.addPredecessor(task1); //8. 将主任务组加入甘特图的Model中并将model对象传递给GanttChart:
model.addTask(taskGroup);
gantt.setModel(model);
//这时GanttChart就可以显示出甘特图来了。
System.out.println(gantt);
//指定路径,生成图片:
String filePath = "E:\\gantt.jpg";
gantt.generateImageFile(filePath); //这样在您指定的路径就有生成的甘特图图片文件了。
}
}
代码大家都有但是我把需要的jar包告诉大家了,别人的博客上都没看到。
过两天会把甘特图变为网页,融入到微服务框架中,希望大家来评价。
java制作甘特图的更多相关文章
- java实现甘特图的2种方法:SwiftGantt和Jfree (转)
http://blog.sina.com.cn/s/blog_50a7c4a601009817.html 第一种方法使用SwiftGantt实现甘特图(进度图推荐这个) import java.a ...
- excel具有制作甘特图的功能
1.Excel最大功能:数据处理.统计分析. 2.数据有效性验证: 长数字输入方法,文本前面加英文"'"(单引号)或使用文本转换. 身份证号:数据.数据有效性.文本长度. 性别:数 ...
- [转]用Excel制作甘特图并管理项目
对于比较简单的项目管理,或绘制甘特图,选用电子表格工具——比如价格高也最强大的Excel.开源的OpenOffice.免费的WPS——可能比项目管理软件更方便. 1. XL-Easy Gantt 模板 ...
- gantt甘特图的制作过程
甘特图主要是用来做项目管理的,可以清楚的看到任务间的逻辑关系,任务与时间关系和任务间并行关系. 在甘特图中,横轴方向表示时间,纵轴方向并列着活动列表.图表内可以用线条.数字.文字代号等来表示计划(实际 ...
- vue项目使用Echarts制作项目工期甘特图
目录 1,前言 2,布局和数据部分 3,制作甘特图 1,前言 项目迭代过程中,碰上一个需求,要求用甘特图的方式显示项目的工期进度,开完会我赶紧搜索一下甘特图是啥东东,大概了解之后,做出了如下样式 Ec ...
- 使用Excel 2007绘制甘特图
本文将教大家如何使用Excel 2007制作甘特图.Excel并未提供甘特图类型,但还是可以绘制甘特图的,方法就是通过对堆积条形图类型进行自定义,使之显示任务.任务工期和层次结构. 下面的过程可帮助创 ...
- Java甘特图控件swing版免费下载地址
FlexGantt 控件是现在Java 平台下最先进的甘特图解决方案,使用一个很高的抽象层次,能适用于多种不同的域,例如 ERP 系统.生产计划和日程安排.制造流程系统或项目公文管理程序等.这些使得 ...
- java处理jqueryGantt甘特图数据的task.depends依赖规则方法
前端采用jqueryGantt,github地址为:https://github.com/robicch/jQueryGantt 原以为后端只需要简单地保存甘特图任务列表和返回任务列表就行了. 但功能 ...
- vue 甘特图简单制作
甘特图(Gantt chart)又称为横道图.条状图(Bar chart).其通过条状图来显示项目,进度,和其他时间相关的系统进展的内在关系随着时间进展的情况.以提出者亨利·L·甘特(Henrry L ...
随机推荐
- golang trace 分析 简例
今天,通过一个例子,一方面熟悉trace在自定义范围内的分析,另一方面golang 在协程调度策略上的浅析. Show Code // trace_example.go package main im ...
- Keepalived实现Nginx负载均衡高可用
第一章:keepalived介绍 VRRP协议 目的就是为了解决静态路由单点故障问题的 第二章: keepalived工作原理 2.1 作为系统网络服务的高可用功能(failover) keepali ...
- Map使用foreach遍历方式,Map获取第一个键值
List<Map<String, Object>> mapList = new ArrayList<>(); for (Map.Entry<String,O ...
- matlab计算相对功率
1.对脑电数据进行db4四层分解,因为脑电频率是在0-64HZ,分层后如图所示, 细节分量[d1 d2 d3 d4] 近似分量[a4] 重建细节分量和近似分量,然后计算对应频段得相对功率谱,重建出来得 ...
- ADT_Bundle搭建
1.打开SDK Manager.exe,打开的速度有点慢.点击右下角的[install n packages...],选择[accept ...],点击[install],然后等待安装.过程有点漫长, ...
- stand up meeting 12-8
根据计划今天项目组成员和travis老师毕然同学进行了最后一次关于design和feature的确认meeting. 项目design和UI的改动较大,feature改动较小,需对UI进行重新整合,对 ...
- 我是如何一步步的在并行编程中将lock锁次数降到最低实现无锁编程
在并行编程中,经常会遇到多线程间操作共享集合的问题,很多时候大家都很难逃避这个问题做到一种无锁编程状态,你也知道一旦给共享集合套上lock之后,并发和伸缩能力往往会造成很大影响,这篇就来谈谈如何尽可能 ...
- 【半译】在ASP.NET Core中创建内部使用作用域服务的Quartz.NET宿主服务
在我的上一篇文章中,我展示了如何使用ASP.NET Core创建Quartz.NET托管服务并使用它来按计划运行后台任务.不幸的是,由于Quartz.NET API的工作方式,在Quartz作业中使用 ...
- python3+selenium3自动化1——元素定位
1.selenium的webdriver提供了八种基本的元素定位方法 打开浏览器 driver = webdriver.Chrome() driver.get('https://www.baidu.c ...
- iOS中点击事件失效的解决办法
解决办法有 2种可供选择: 将目标元素换成 <a> 或者 button 等可点击的元素 给目标元素加一条样式规则 cursor : pointer;