Java JFreeChart getSeriesStroke/Paint/Shape返回null

Java JFreeChart getSeriesStroke/Paint/Shape返回null,java,swing,jfreechart,Java,Swing,Jfreechart,通过将XYSeriesCollection数据集传递给JFreeChart构造函数来创建折线图后,我尝试将序列笔划/绘制/形状作为: XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer)chart.getXYPlot().getRenderer(); for (int i = 0; i < dataset.getSeriesCount(); i++) { renderer.getSeriesStroke(i);

通过将
XYSeriesCollection
数据集传递给JFreeChart构造函数来创建折线图后,我尝试将序列
笔划
/
绘制
/
形状
作为:

XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer)chart.getXYPlot().getRenderer();
for (int i = 0; i < dataset.getSeriesCount(); i++) {
     renderer.getSeriesStroke(i);
     renderer.getSeriesPaint(i);
     renderer.getSeriesShape(i);
}
xylineandshaperender渲染器=(xylineandshaperender)chart.getXYPlot().getRenderer();
对于(int i=0;i
但所有返回空值

为什么呢?如何获取非空对象?

An是一个
XYItemRenderer
,它支持“在
XYPlot
上呈现单个(x,y)项的视觉表示”,尽管相应的系列属性为
null
,但可以访问项属性。从这一点开始,以下更改将产生所示的输出:

代码:


这很有帮助,但我仍然不明白getSeriesPaint为什么为空-我正在使用series向图表添加数据,因此我希望它们有颜色。有关详细信息,请参阅抽象父级的
lookupSeriesPaint()
实现。
XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer)chart.getXYPlot().getRenderer();
for (int i = 0; i < xyPlot.getDataset().getSeriesCount(); i++) {
     System.out.println(renderer.getItemStroke(i, 0));
     System.out.println(renderer.getItemPaint(i, 0));
     System.out.println(renderer.getItemShape(i, 0));
     System.out.println(renderer.getItemShape(i, N));
}