JFreeChart获取传奇图形

时间:2011-11-28 20:56:54

标签: java jfreechart

在我的应用程序中,我在表格中显示数据以及通过Dual Axis Bar / Line JFreeChart显示数据。为了节省一些空间(因为图表被保存为PNG并使用iText PDF放置PDF),我想从图例中获取图形,在表格视图中使用它们,并删除图例。

有没有办法抓住图例项目的图标?我找到了LegendGraphic类,它似乎是从LegendItem检索图标的方法,但在LegendItem的文档中没有找到任何表明它的内容。

最好将它们返回到可以轻松用于创建com.itextpdf.text.Image的对象中,例如byte[]java.awt.Image

1 个答案:

答案 0 :(得分:3)

您可以使用图表渲染器的getLegendItem()方法获得系列“LegendItem”。您可以使用ShapeUtilities的方法更改系列“Shape”,如example所示。另请参阅DefaultDrawingSupplier了解createStandardSeriesShapes()如何运作的详细信息。

附录:请注意,即使您创建的图表没有图例,或者稍后使用getLegendItem(),渲染器的chart.removeLegend()方法仍然有效。获得LegendItem后,您可以根据需要使用它的属性。

System.out.println(renderer.getLegendItem(0, 0).getShape());
System.out.println(renderer.getLegendItem(0, 0).getFillPaint());