如何在JFreeChart中实现集中的FlowArrangement?

时间:2016-08-05 21:01:13

标签: java charts jfreechart

在使用FlowLayout创建的图表的HorizontalAlignment.CENTER图例中,我希望项目按HorizontalAlignment.LEFT排列,以便自动包裹过长的行,但我似乎无法看到弄清楚如何使它们相对于整个图例也是中心对齐的。换句话说,我希望换行保留,但我希望新包装的行有FlowArrangement而不是Arrangement

我在API或源代码中找到的所有方法都不允许我有效地使用FlowArrangement。有没有一种方便的方法可以做到这一点,或者我可以根据LegendTitle chartLegend = chart.getLegend(); chartLegend.setLegendItemGraphicEdge(RectangleEdge.TOP); chartLegend.getItemContainer().setArrangement(new FlowArrangement(HorizontalAlignment.CENTER, VerticalAlignment.TOP, 0, 0)); 编写我自己的自定义ChartPanel但是居中?

以下代码片段是我假设可行的,但似乎对图例没有任何影响。

JPanel

编辑:另一个要求是整个图表(带图例)必须易于打印,因此所有图片都应该在同一个{{1}}上,因此我不会&#39 ; t看到使用多个单独的{{1}}作为选项。

1 个答案:

答案 0 :(得分:1)

我已经看到了两种一般方法:

  1. 删除所选ChartFactory创建的图例,并创建一个具有所需参数的新图例,如here所示。

  2. 在具有所需布局的单独Container中渲染图例项目,如图here所示。

    JPanel panel = new JPanel(new FlowLayout(FlowLayout.CENTER));