在我的JFreeChart时间序列图中,我发现图例线条太细,很难准确看到颜色。另一篇文章 [ https://dev59.com/3VrUa4cB1Zd3GeqPo_VL ] 建议通过覆盖渲染器方法来解决:
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());
}
};