为JFreeChart SVG添加标题

问题描述 投票:0回答:1

我想将<title>添加到使用蜡染从JFreeChart导出的svg图表中。我已阅读以下有趣的论文http://www.svgopen.org/2009/papers/7-Enhancing_ServerSide_SVG_Generation_using_the_Batik_Extension_Handler_Mechanism/

Alternative URL

但是我缺少一些步骤。如果我将实际的Paint(Color的一个实例)替换为(例如)TooltipPaint

 pie.setSectionPaint(key,new TooltipPaint("some text", "a description"));

我松开了有关颜色的信息,那么如何以正确的方式进行?

svg jfreechart batik
1个回答
0
投票

确定,现在可以了。主要问题是我正在将SVGGeneratorContext传递给ExtensionSVGGraphics2D。您必须通过ExtensionSVGGraphics2D构造函数创建一个自定义SVGGeneratorContext。

所需类:CompositePaint,TooltipPaint,ExtensionPaint,ExtensionSVGGraphics2D

如何设置工具提示:

方法1)

 if(plot instanceof PiePlot){
      PiePlot pie=(PiePlot)plot;
      List keys=pie.getDataset().getKeys();
      for(int i=0;i<keys.size();i++){
        Comparable k=(Comparable)keys.get(i);
        Paint p=pie.getSectionPaint(k);
        String tooltip=((PiePlot)plot).getToolTipGenerator().generateToolTip(pie.getDataset(),k);
        TooltipPaint tooltipPaint=new TooltipPaint(tooltip,tooltip);
        p=new CompositePaint(p,tooltipPaint);
        pie.setSectionPaint(k,p);
      }
    }

方法2)-重写类PiePlot中的drawItem方法-在调用g2.fill之前,先设置CompositePaint

if(tip!=null){
   paint = new CompositePaint(paint,new TooltipPaint(tip,tip));
}
© www.soinside.com 2019 - 2024. All rights reserved.