在我的 JFreeChart 时间序列图中,我发现图例线太细而无法准确看到颜色。另一篇文章 [ https://stackoverflow.com/questions/7306901/jfreechart-change-sample-of-colors-in-legend ] 建议覆盖渲染器方法,如下所示:
renderer = new XYLineAndShapeRenderer()
{
private static final long serialVersionUID = 1L;
public Shape lookupLegendShape(int series)
{
return new Rectangle(15, 15);
}
};
这种方法工作正常,直到你做我所做的
renderer.setSeriesShapesVisible(i, false);
一旦我这样做了,传说就会恢复到一条线。有没有办法解决这个问题?
我采用的解决方案接近 TrashGod 建议的解决方案, 我覆盖了 getLegendItem() 方法,将图例形状强制设置为所需的框。
renderer = new XYLineAndShapeRenderer()
{
private static final long serialVersionUID = 1L;
public LegendItem getLegendItem(int datasetIndex, int series)
{
LegendItem legend = super.getLegendItem(datasetIndex, series);
return new LegendItem(legend.getLabel(), legend.getDescription(), legend.getToolTipText(), legend.getURLText(), Plot.DEFAULT_LEGEND_ITEM_BOX, legend.getFillPaint());
}
};