Wyświetlanie legendy JFreeChart

W moich wykresach czasowych JFreeChart znajduję linie z legendami do cienkich, aby dokładnie zobaczyć kolor. Inny post [jfreechart - zmień próbkę kolorów w legendzie ] zasugerował zastąpienie metody renderującej w następujący sposób:

renderer = new XYLineAndShapeRenderer()
{
    private static final long serialVersionUID = 1L;
    public Shape lookupLegendShape(int series)
    {
        return new Rectangle(15, 15);
    }
};

to podejście działa dobrze, dopóki nie zrobisz tego, co zrobiłem

renderer.setSeriesShapesVisible(i, false);

Raz zrobiłem, że legenda powraca do linii. Czy jest jakiś sposób na to?

Rozwiązanie, które przyjąłem, jest zbliżone do zaproponowanego przez TrashGoda Nadpisałem metodę getLegendItem (), wymuszając kształt legendy na żądanym polu.

    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());
        }
    };

questionAnswers(2)

yourAnswerToTheQuestion