簡體   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