我想添加带有短划线( - )的图例项目来表示我的图表中的某些系列。提供的默认形状仅为Plot.DEFAULT_LEGEND_ITEM_CIRCLE和Plot.DEFAULT_LEGEND_ITEM_BOX。是否有类似Plot.DEFAULT_LEGEND_ITEM_LINE的内容?如何创建一个?
答案 0 :(得分: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
构造函数采用了形状,因此您基本上可以在那里绘制任何内容。