我正在使用TimeTableXYDataset
绘制StackedXYBarRenderer
。不幸的是,每个系列的颜色在刷新时都会发生变化。
我知道如何使用渲染器的setSeriesPaint
方法设置颜色,但是以整数系列索引作为参数。我使用字符串作为系列名称创建我的数据点:
ds.add(new SimpleTimePeriod(us.getDate(),
new Date(us.getDate().getTime() + 1000*60)),
us.getTotal(), us.getName()));
如何发现系列名称和系列索引之间的映射,以便我可以调用setSeriesPaint
?
答案 0 :(得分:4)
最简单的方法是在数据累积时更新合适的Map
。或者,方法getSeriesKey()
和indexOf()
可用于在任一方向转换。例如,
for (int i = 0; i < ds.getSeriesCount(); i++) {
String name = (String) ds.getSeriesKey(i);
System.out.println(ds.indexOf(name) + ": " + name);
}