package charts.graphics; import java.awt.BasicStroke; import java.awt.Font; import java.awt.Shape; import java.awt.font.FontRenderContext; import java.awt.font.GlyphVector; import java.awt.geom.Rectangle2D; import org.jfree.chart.LegendItem; import org.jfree.chart.LegendItemCollection; import org.jfree.chart.LegendItemSource; import org.jfree.chart.title.LegendTitle; import org.jfree.ui.HorizontalAlignment; import org.jfree.ui.RectangleEdge; import org.jfree.ui.RectangleInsets; public class ErrorIndicatorLegend { public static LegendTitle createLegend() { final LegendItemCollection legendItems = new LegendItemCollection(); FontRenderContext frc = new FontRenderContext(null, true, true); Font legenfont = new Font(Font.SANS_SERIF, Font.PLAIN, 12); GlyphVector gv = legenfont.createGlyphVector(frc, new char[] {'I', 'I'}); Shape shape = gv.getVisualBounds(); Rectangle2D bounds = shape.getBounds2D(); { LegendItem li = new LegendItem("Standard error", null, null, null, new ErrorIndicator(bounds), new BasicStroke(), ErrorIndicator.ERROR_INDICATOR_COLOR); li.setLabelFont(legenfont); legendItems.add(li); } LegendTitle legend = new LegendTitle(new LegendItemSource() { @Override public LegendItemCollection getLegendItems() { return legendItems; }}); legend.setPosition(RectangleEdge.BOTTOM); legend.setMargin(new RectangleInsets(0,30,0,0)); legend.setPadding(RectangleInsets.ZERO_INSETS); legend.setLegendItemGraphicPadding(new RectangleInsets(0,20,0,0)); legend.setHorizontalAlignment(HorizontalAlignment.LEFT); return legend; } }