Java 正在为TimeSeries获取指定的绘制

Java 正在为TimeSeries获取指定的绘制,java,jfreechart,Java,Jfreechart,我显然不理解getSeriesPaint方法的文档。我有TimeSeries对象,我想获得用于渲染它的颜色。然而,我似乎陷入了困境。我需要知道序列索引(getIndex),但要找到它,我需要知道序列的时间段。但是,要找到序列时间段,我需要知道索引。我想做这样的事情: Color color=(Color) r1.getSeriesPaint(arg0); 其中,r1是xylineandshaperender。给定TimeSeries对象,我对arg0使用什么?因为是XYItemRenderer

我显然不理解
getSeriesPaint
方法的文档。我有
TimeSeries
对象,我想获得用于渲染它的颜色。然而,我似乎陷入了困境。我需要知道序列索引(
getIndex
),但要找到它,我需要知道序列的时间段。但是,要找到序列时间段,我需要知道索引。我想做这样的事情:

Color color=(Color) r1.getSeriesPaint(arg0);
其中,
r1
xylineandshaperender
。给定
TimeSeries
对象,我对
arg0
使用什么?

因为是
XYItemRenderer
,它调用
AbstractRenderer
方法,该方法“在绘制数据项时返回用于为其着色的油漆。”注意“默认实现将控制权传递给
lookupSeriesPaint()
method。”从这里开始,下面的片段从图表中获取数据集和渲染器。然后,它列举了在图像中看到的红色和蓝色的系列颜色:

JFreeChart chart = chartPanel.getChart();
XYPlot plot = (XYPlot) chart.getPlot();
TimeSeriesCollection tsc = (TimeSeriesCollection) plot.getDataset();
XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) plot.getRenderer();
for (int i = 0; i < tsc.getSeriesCount(); i++) {
    System.out.println(renderer.lookupSeriesPaint(i));
}


备选,请考虑一个自定义<代码> DrawingSupplier <代码>。< /P>谢谢您的回复。我想你说的是,我无法获得给定特定TimeSeries对象的颜色。我会调查一下图纸供应商。对;模型不知道颜色,但视图(面板>图表>绘图>渲染器)知道。

DrawingSupplier
为应用程序提供颜色的先验知识。
java.awt.Color[r=255,g=85,b=85]
java.awt.Color[r=85,g=85,b=255]