我希望我能夠得到我的信息傳達正確的方式,告訴你那是什麼我期待實現。改變對JFreeChart的甘特圖的範圍軸 - SegmentedTimeline非工作時間
我使用JFreeChart的甘特圖在我的Swing應用程序,以顯示任務的調度。能夠準備正確的數據集並獲得面板上的圖表。它看起來像這樣。
沒有問題,因爲這樣的整體功能,但我們的任務調度輪班做,所以它不佔據整個24小時的日子。 說,例如,在我們的情況下,運行時間僅是從0800小時 - 1600個小時。我的數據集也符合這個。如圖所示,步驟7是一項任務,持續時間爲2小時,1月22日1時15分開始,第二天9時結束(兩天1小時,因爲工作時間結束於1600,並開始僅在第二天0800)。
但是看着圖表,第7步是事件中最長的任務之一,只是因爲圖表也考慮了非運行時間。有沒有辦法來改變範圍軸/日期軸考慮的時間段僅在定製小時,或縮減非工作時間(1600-0800小時,在我的情況)?
不幸的是,我沒有JFreeChart的開發者指南,以進一步探討。
下面是我對生成的數據集和創建圖表摘錄
for (int i = 0; i < tempList.size(); i++) {
GanttChartPojo tempGCPojo = new GanttChartPojo();
tempGCPojo = tempList.get(i);
s1.add(new Task(tempGCPojo.getTaskStepDesc(), tempGCPojo.getEST(), tempGCPojo.getEFT()));
s2.add(new Task(tempGCPojo.getTaskStepDesc(), tempGCPojo.getLST(), tempGCPojo.getLFT()));
}
}
}
// Add the task series to a TaskSeriesCollection
final TaskSeriesCollection collection = new TaskSeriesCollection();
collection.add(s1);
collection.add(s2);
創建海圖編
// create the chart...
final JFreeChart chart = ChartFactory.createGanttChart(
"Scheduling of Task Steps : Maintenance Event "+eventKey, // chart title
"Task", // x axis label
"Time", // y axis label
dataset, // data
true, // include legend
true, // tooltips
false // urls
);
chart.setBackgroundPaint(Color.pink);
return chart;
}
UPDATE: 後在互聯網上查找廣泛,我發現我可以使用SegmentedTimeline API消除這種非工作時間。任何人誰使用它之前,請幫我從情節刪除非工作小時的路程?
不幸的是,我沒有進入開發人員指南,但在內部做這個用SegmentedTimeline?謝謝 – Napster