2012-01-18 58 views
3

我有5個任務的甘特圖。每個任務分爲3個子任務。我需要爲每個子任務定義不同的顏色,例如子任務1:「淺藍色」,子任務2:「藍色」,子任務3:「深藍色」。我試圖谷歌一些例子,但我沒有找到任何完整的工作示例。謝謝。如何更改JFreeChart甘特圖中特定子任務的顏色?

更新#1: 我正在使用IntervalCategoryDataset作爲數據集。

IntervalCategoryDataset dataset = createDataset(data); 

final Task t = new Task("Resource " + i, date(time11), date(time14)); 
t.addSubtask(new Task("Resource " + i, date(time11), date(time12))); 
t.addSubtask(new Task("Resource " + i, date(time12), date(time13))); 
t.addSubtask(new Task("Resource " + i, date(time13), date(time14))); 

回答

3

您可以覆蓋渲染器的getItemPaint()方法,如討論here

附錄:由於Gnatt圖表使用的是GanttRenderer,所以您可以按照這種方式查看現有顏色。只需返回給定行和列的所選顏色。

plot.setRenderer(new MyRenderer()); 
... 
private static class MyRenderer extends GanttRenderer { 

    @Override 
    public Paint getItemPaint(int row, int col) { 
     System.out.println(row + " " + col + " " + super.getItemPaint(row, col)); 
     return super.getItemPaint(row, col); 
    } 
} 
+0

我看過這個話題,但我不明白整個解決方案是什麼。我需要一些小而明確的例子。 – 2012-01-18 21:15:30

+1

我已更新鏈接並在上面進行了詳細說明。 – trashgod 2012-01-19 00:00:20

+0

我試過這段代碼。但我不明白在哪裏定義了子任務的顏色?如果我僅這樣做,那麼所有的子任務仍然具有相同的藍色。 – 2012-01-19 12:10:33