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包告訴大家了,別人的博客上都沒看到。

過兩天會把甘特圖變為網頁,融入到微服務框架中,希望大家來評價。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM