Search code examples
javajfreechart

jfreechart add border to my legend item shape


I want to add a border to my legend items shape. No to the legendTitle but only to legendItem shape. Here is a part of code

LegendItemCollection chartLegend = new LegendItemCollection();
Shape legendShape = new Rectangle(10, 10);
LegendItem legendItem = new LegendItem("Text", some color);
legendItem.setLabelFont(new Font(ARIAL_FONT, Font.PLAIN, 8));
legendItem.setShape(legendShape);
chartLegend.add(legendItem);
plot.setFixedLegendItems(chartLegend);

GridArrangement grid = new GridArrangement(3, 1);

LegendTitle legendTitle = new LegendTitle(plot, grid, grid);
legendTitle.setBackgroundPaint(Color.WHITE);
legendTitle.setPosition(RectangleEdge.BOTTOM);
legendTitle.setItemLabelPadding(new RectangleInsets(0, 1, 0, 5));
legendTitle.setPadding(new RectangleInsets(0, 15, 0, 0));
chart.addLegend(legendTitle);

Solution

  • I solved it with those 3 lines of code

    legendItem.setLineVisible(true);
    legendItem.setLinePaint(Color.BLACK);
    legendItem.setLineStroke(new BasicStroke(0.1f));