如何在JFreeChart甘特图中更改特定子任务的颜色?

时间:2012-01-18 17:56:08

标签: colors task jfreechart gantt-chart

我有一个包含5个任务的甘特图。每项任务分为3个子任务。我需要为每个子任务定义不同的颜色,例如子任务1:“淡蓝色”,子任务2:“蓝色”,子任务3:“深蓝色”。我试图谷歌一些例子,但我没有找到任何完整的工作示例。感谢。

更新#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)));

1 个答案:

答案 0 :(得分: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);
    }
}