我正在策划一个TimeTableXYDataset
用一个StackedXYBarRenderer
。不幸的是,每个系列的颜色在刷新时都会发生变化。
我知道如何使用设置颜色setSeriesPaint
渲染器的方法,但它采用整数系列索引作为参数。我使用字符串作为系列名称创建数据点:
ds.add(new SimpleTimePeriod(us.getDate(),
new Date(us.getDate().getTime() + 1000*60)),
us.getTotal(), us.getName()));
如何发现系列名称和系列索引之间的映射,以便我可以调用setSeriesPaint
?
最简单的方法是更新一个合适的Map
随着数据的积累。或者,方法getSeriesKey() http://www.jfree.org/jfreechart/api/javadoc/org/jfree/data/time/TimeTableXYDataset.html#getSeriesKey%28int%29 and indexOf() http://www.jfree.org/jfreechart/api/javadoc/org/jfree/data/general/AbstractSeriesDataset.html#indexOf%28java.lang.Comparable%29可用于任一方向的转换。例如,
for (int i = 0; i < ds.getSeriesCount(); i++) {
String name = (String) ds.getSeriesKey(i);
System.out.println(ds.indexOf(name) + ": " + name);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)