繁体   English   中英

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

[英]How can I achieve a centered FlowArrangement in JFreeChart?

在使用JFreeChart创建的图表的XYPlot图例中,我希望使用FlowLayout排列来排列项目,以便自动XYPlot行过长的线条,但是我似乎无法弄清楚如何使用它以便项目也居中-相对于整个图例对齐。 换句话说,我希望保留换行,但我希望新包装的行具有HorizontalAlignment.CENTER而不是HorizontalAlignment.LEFT

我在 API 或源代码中尚未找到的任何方法都无法让我有效地拥有一个居中的FlowArrangement 有没有一种方便的方法来做到这一点,或者我可以期望根据FlowArrangement编写自己的自定义Arrangement但居中?

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

LegendTitle chartLegend = chart.getLegend();
chartLegend.setLegendItemGraphicEdge(RectangleEdge.TOP);
chartLegend.getItemContainer().setArrangement(new FlowArrangement(HorizontalAlignment.CENTER, VerticalAlignment.TOP, 0, 0));

编辑:另一个要求是整个图形(带有图例)必须易于打印,因此所有图形都应该在同一个ChartPanel ,因此我看不到使用多个单独的JPanel作为选项。

我见过两种通用方法:

  1. 删除你的选择创建的传说ChartFactory ,并创建具有所需参数的一个新的,如图所示这里

  2. 呈现在单独的图例项Container具有所需的布局,如图这里

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM