SwiftGantt编程使用指南
##### 使用SwiftGantt需要引用的jar文件（在下载的SwiftGantt软件包中可以找到）： commons-collections-3.2.jar commons-lang-2.2.jar commons-io-1.3.2.jar log4j-1.2.15.jar swiftcommon-0.3.x.jar swiftgantt-0.3.x.jar
<一>. SwiftGantt快速上手. ##### 以下是使用SwiftGantt的一般步骤，完成这些步骤就可以展现最基本的甘特图： 1. 首先初始化一个甘特图的主类com.yuxingwang.gantt.GanttChart,是一个继承自javax.swing.JScrollPanel的Swing的组件，通过它就可以用来显示甘特图： GanttChart gantt = new GanttChart(); 2. 设置甘特图的时间刻度的单位，如以日为单位，则时间轴上的每一刻度代表某一天： gantt.setTimeUnit(TimeUnit.Day); 3. 配置甘特图,在这里您可以通过Config类配置您的甘特图，您可以设置甘特图各个元素的颜色，宽度。从0.3.0版本开始，您可以设置每周工作时间区间和每日的工作时间区间，以灵活适应不同的实际情况，详细配置项请参考API文档中的Config类的说明。 Config config = gantt.getConfig(); config.setWorkingTimeBackColor(Color.YELLOW);//设置工作时间背景色 config.setTimeUnitWidth(50);//设置时间单位的显示宽度 config.setWorkingDaysSpanOfWeek(new int[]{Calendar.MONDAY, Calendar.THURSDAY})//设置每周工作开始日与结束日。 ... 4. 创建甘特图的数据模型GanttModel，所有的您要显示的项目任务信息都通过GanttModel来提供给GanttChart对象。 GanttModel model = new GanttModel(); 5. 设置项目开始时间和结束时间： model.setKickoffTime(new GregorianCalendar(2008, 0, 1)); model.setDeadline(new GregorianCalendar(2008, 0, 30)); 6. 创建甘特图的基本元素：任务对象Task。一个Task对象在甘特图中表现为一条横线。每个Task对象都可以包含任意多的子Task对象，形成树状的任务模型。如果一个Task对象包含子Task，则自动成为对象组，对象组仍然是Task对象，但是在甘特图中显示为不同的形状。如下例，taskGroup就是任务组，包含了两个子任务，task1和task2： Task taskGroup = new Task("My Work 1", new GregorianCalendar(2008, 0, 1), new GregorianCalendar(2008, 0, 30)); Task task1 = new Task("Sub-task 1", new GregorianCalendar(2008, 0, 1), new GregorianCalendar(2008, 0, 5)); Task task2 = new Task(); task2.setName("Sub-task 2"); task2.setStart(new GregorianCalendar(2008, 0, 6)); task2.setEnd(new GregorianCalendar(2008, 0, 18));//从0.3.0版本开始，设置任务的结束时间也包含在整个任务时间之内 taskGroup.add(new Task[]{task1, task2}); 7. 指定任务之间的依赖关系。如果一项任务需要在另一项任务完成之后才能开始，那么需要将另一项任务设为此任务的前置任务。从0.3.0版本开始，您可以给一个任务添加多个前置任务。 task2.addPredecessor(task1); 8. 将主任务组加入甘特图的Model中并将model对象传递给GanttChart： model.addTask(taskGroup); gantt.setModel(model); 这时GanttChart就可以显示出甘特图来了。
<二>. 将甘特图保存为图片文件。 ##### SwiftGantt可以将显示出来的甘特图保存为png和jpeg格式的图片文件，这个功能对于B/S的Web应用特别有用，您可以在Web应用后台生成一个静态的SwiftGantt的实例（Singleton）作为甘特图图片文件的生成器，将需要显示的项目信息生成图片，显示给前端用户的浏览器。如： static GanttChart gantt = new GanttChart(); 将项目信息添加到Model中： GanttModel model = new GanttModel(); ... 将model指派给静态的GanttChart实例： gantt.setModel(model); 指定路径，生成图片： String filePath = "..."; gantt.generateImageFile(filePath); 这样在您指定的路径就有生成的甘特图图片文件了。 请注意，SwiftGantt 不是线程安全的，请在GanttChart上同步这些方法的调用。如： synchronized(gantt){ gantt.setModel(model); gantt.generateImage(filePath); }