如何设置Jfree GanttChart子任务颜色和标签

时间:2011-02-11 13:25:17

标签: jfreechart

我正在使用Jfree图表来显示甘特图。我必须为一个系列下的子任务显示不同的颜色。

例如,如果我有5个系列任务一:每个任务应该有不同的颜色 另外,我需要为每个任务打印标签。

我尝试了许多方法,但没有成功,只能单独设置系列颜色。

请任何人帮忙。

谢谢。

1 个答案:

答案 0 :(得分:1)

一种方法是覆盖GanttRenderer子类中的getItemPaint()。只需为每个column返回不同的颜色。

附录:

  

我需要根据已完成的任务绘制子任务,而不管列值如何。

如果我理解,如果该列已完成,您将返回完成的颜色;否则返回未完成的颜色。

  

但是,请[你]发送一个代码段。

这个example可以帮助您查看行/列与系列/项目之间的关系。

  

另外,请告诉我如何在子任务上打印标签。

因为GanttRendererIntervalBarRenderer,我会看IntervalCategoryItemLabelGenerator

  

它并没有真正起作用。

什么不起作用?您尚未发布任何代码。引用的example是对标准BarChartDemo1的修改;它产生以下输出。特别注意有三个系列(参数row),每个系列有五个值(参数col)。 super的{​​{1}}实现只是在一个循环中返回系列绘图。您将覆盖该行为以执行您的应用程序所需的任何操作。

0 0 java.awt.GradientPaint@7e1a9d1b
1 0 java.awt.GradientPaint@540984b
2 0 java.awt.GradientPaint@53ce669e
0 1 java.awt.GradientPaint@7e1a9d1b
1 1 java.awt.GradientPaint@540984b
2 1 java.awt.GradientPaint@53ce669e
0 2 java.awt.GradientPaint@7e1a9d1b
1 2 java.awt.GradientPaint@540984b
2 2 java.awt.GradientPaint@53ce669e
0 3 java.awt.GradientPaint@7e1a9d1b
1 3 java.awt.GradientPaint@540984b
2 3 java.awt.GradientPaint@53ce669e
0 4 java.awt.GradientPaint@7e1a9d1b
1 4 java.awt.GradientPaint@540984b
2 4 java.awt.GradientPaint@53ce669e