我正在使用Jfree图表来显示甘特图。我必须为一个系列下的子任务显示不同的颜色。
例如,如果我有5个系列任务一:每个任务应该有不同的颜色 另外,我需要为每个任务打印标签。
我尝试了许多方法,但没有成功,只能单独设置系列颜色。
请任何人帮忙。
谢谢。
答案 0 :(得分:1)
一种方法是覆盖GanttRenderer
子类中的getItemPaint()
。只需为每个column
返回不同的颜色。
附录:
我需要根据已完成的任务绘制子任务,而不管列值如何。
如果我理解,如果该列已完成,您将返回完成的颜色;否则返回未完成的颜色。
但是,请[你]发送一个代码段。
这个example可以帮助您查看行/列与系列/项目之间的关系。
另外,请告诉我如何在子任务上打印标签。
因为GanttRenderer
是IntervalBarRenderer
,我会看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