4

我想添加一个带有破折号 (-) 的图例项来表示图表中的某些系列。提供的默认形状只有 Plot.DEFAULT_LEGEND_ITEM_CIRCLE 和 Plot.DEFAULT_LEGEND_ITEM_BOX。有类似 Plot.DEFAULT_LEGEND_ITEM_LINE 的东西吗?如何创建一个?

4

1 回答 1

6

您可以创建自己的图例项目源。假设您有一组与要显示的图例相对应的元素,称为legendKeys

class LineLegendItemSource implements LegendItemSource {
    public LegendItemCollection getLegendItems() {
     LegendItemCollection itemCollection = new LegendItemCollection();
     for (Comparable comparable : legendKeys) {
        Paint paint = // get the paint you want
        LegendItem item = new LegendItem("string to display", 
                                         "description", 
                                         "tooltip", 
                                         "url", 
                                         new Line2D.Double(0, 5, 10, 5), paint);
        itemCollection.add(item);
     }
     return itemCollection; 
  }
}

然后您需要从图表中删除旧图例,并添加新图例:

JFreeChart chart = // your chart 
chart.removeLegend();
LegendTitle legend = new LegendTitle(new LineLegendItemSource());
chart.addLegend(legend);

如您所见,LegendItem构造函数具有一定的形状,因此您基本上可以在其中绘制任何想要的东西。

于 2011-08-25T08:44:23.253 回答