3

我有一个包含 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)));
4

1 回答 1

3

您可以覆盖渲染器的getItemPaint()方法,如此所述。

附录:当 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);
    }
}
于 2012-01-18T19:56:51.080 回答