Exibição de Legenda JFreeChart
Nos meus gráficos de timeseries do JFreeChart eu acho as linhas das legendas finas para ver a cor com precisão. Outro post [jfreechart - alterar amostra de cores na legenda ] sugeriu a substituição de um método renderizador da seguinte forma:
renderer = new XYLineAndShapeRenderer()
{
private static final long serialVersionUID = 1L;
public Shape lookupLegendShape(int series)
{
return new Rectangle(15, 15);
}
};
essa abordagem funciona bem até você fazer o que eu fiz
renderer.setSeriesShapesVisible(i, false);
Uma vez que eu fiz isso, a legenda volta para uma linha. Existe alguma maneira de contornar isso?
A solução que adotei está próxima da sugerida pela TrashGod Eu cancelei o método getLegendItem (), forçando a forma da legenda para a caixa desejada.
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());
}
};