Anzeige der JFreeChart-Legende

In meinen JFreeChart-Zeitreihen finde ich die Legendenlinien zu dünn, um die Farbe genau zu sehen. Ein weiterer Beitrag [jfreechart - Farbmuster in der Legende ändern ] schlug vor, eine Renderer-Methode wie folgt zu überschreiben:

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

Dieser Ansatz funktioniert einwandfrei, bis Sie das tun, was ich getan habe

renderer.setSeriesShapesVisible(i, false);

Sobald ich das getan habe, kehrt die Legende zu einer Linie zurück. Gibt es einen Ausweg?

Die Lösung, die ich gewählt habe, kommt der von TrashGod vorgeschlagenen nahe Ich habe die Methode getLegendItem () überschrieben und die Legendenform in das gewünschte Feld gezwungen.

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

Antworten auf die Frage(2)

Ihre Antwort auf die Frage