Jasper reports Jaspersoft Studio:如何设置传奇标题?

Jasper reports Jaspersoft Studio:如何设置传奇标题?,jasper-reports,bar-chart,jfreechart,jaspersoft-studio,Jasper Reports,Bar Chart,Jfreechart,Jaspersoft Studio,我正在使用Jaspersoft Studio 6.6.0 Eclipse插件和jasperreports库。对于条形图,我想为图例设置一个标题。我怎么做 根据,有一个高级属性legend.title.text。它建议我应该在Advanced选项卡中手动输入它,但在Jaspersoft Studio 6.6.0 Eclipse插件中没有自由文本属性字段,只有一组预定义的属性。我瞎了吗?或者这项功能是为付费产品保留的?JasperReports和Jaspersoft Studio社区版图表基于。wi

我正在使用Jaspersoft Studio 6.6.0 Eclipse插件和jasperreports库。对于条形图,我想为图例设置一个标题。我怎么做


根据,有一个高级属性legend.title.text。它建议我应该在Advanced选项卡中手动输入它,但在Jaspersoft Studio 6.6.0 Eclipse插件中没有自由文本属性字段,只有一组预定义的属性。我瞎了吗?或者这项功能是为付费产品保留的?

JasperReports和Jaspersoft Studio社区版图表基于。wiki文章讨论了JasperReports Server Professional,这是一种不同的产品,它的特点是基于

JasperReports图表没有内置功能来指定图例的标题

但是,您可以将其作为图表定制器或图表主题自行实现,但这有点复杂。图表自定义程序将读取图表元素属性,并使用JFreeChart为图例创建标题。它看起来像这样:

import org.jfree.chart.JFreeChart;
import org.jfree.chart.block.BlockContainer;
import org.jfree.chart.block.LabelBlock;
import org.jfree.chart.title.LegendTitle;
import org.jfree.ui.RectangleEdge;

import net.sf.jasperreports.engine.JRChart;
import net.sf.jasperreports.engine.JRChartCustomizer;
import net.sf.jasperreports.engine.JRPropertiesMap;

public class LegendTitleCustomizer implements JRChartCustomizer {
    @Override
    public void customize(JFreeChart chart, JRChart jasperChart) {
        JRPropertiesMap elementProperties = jasperChart.getPropertiesMap();
        String legendTitleText = elementProperties.getProperty("legend.title.text");
        if (legendTitleText != null) {
            LegendTitle legend = chart.getLegend();
            BlockContainer legendItems = legend.getItemContainer();
            BlockContainer legendWrapper = new BlockContainer();
            LabelBlock label = new LabelBlock(legendTitleText);
            legendWrapper.add(label, RectangleEdge.TOP);
            legendWrapper.add(legendItems, RectangleEdge.BOTTOM);
            legend.setWrapper(legendWrapper);
        }       
    }
}
报表中的图表元素需要指定图表自定义程序类和属性值:

<barChart>
    <chart customizerClass="LegendTitleCustomizer">
        <reportElement x="0" y="50" width="270" height="175">
            <propertyExpression name="legend.title.text">"Series"</propertyExpression>
        </reportElement>
        ...

您好@badbishop,您使用了highcharts标签,但问题似乎与highcharts无关,而是与jaspersoft studio有关。要在Highcharts中设置图例标题,请设置legend.title.text。活例子:@ppotaczek:是其他人添加了highcharts标签,而不是我。我确认我的问题与Jaspersoft Studio有关。事实上,对于JasperReports库,如果可以解决问题,我不介意手动编辑文本文件。