Как изменить цвет определенной подзадачи в диаграмме Ганта JFreeChart? - PullRequest
3 голосов
/ 18 января 2012

У меня есть диаграмма Ганта с 5 задачами. Каждое задание делится на 3 подзадачи. Мне нужно определить разные цвета для каждой подзадачи, например, Подзадача 1: «голубой», Подзадача 2: «синий», Подзадача 3: «синий». Я попытался привести несколько примеров в Google, но я не нашел ни одного полноценного рабочего примера. Спасибо.

Обновление # 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 Ответ

3 голосов
/ 18 января 2012

Вы можете переопределить метод getItemPaint() средства визуализации, как обсуждено здесь .

Добавление: поскольку диаграмма Гнатта использует 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);
    }
}
...