首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >向JFreeChart SVG添加标题

向JFreeChart SVG添加标题
EN

Stack Overflow用户
提问于 2019-12-31 18:33:21
回答 1查看 76关注 0票数 1

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

Alternative URL

但是我遗漏了一些步骤。如果我用(例如) TooltipPaint替换实际的画图(一个颜色的实例)

代码语言:javascript
运行
复制
 pie.setSectionPaint(key,new TooltipPaint("some text", "a description"));

我丢失了关于颜色的信息,那么如何以正确的方式进行?

EN

回答 1

Stack Overflow用户

发布于 2020-04-10 21:41:47

好了,现在它起作用了。主要问题是我向ExtensionSVGGraphics2D传递了一个SVGGeneratorContext。您必须通过ExtensionSVGGraphics2D构造函数创建一个自定义SVGGeneratorContext。

所需的类: CompositePaint、TooltipPaint、ExtensionPaint、ExtensionSVGGraphics2D

如何设置工具提示:

方法1)

代码语言:javascript
运行
复制
 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

代码语言:javascript
运行
复制
if(tip!=null){
   paint = new CompositePaint(paint,new TooltipPaint(tip,tip));
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59542902

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档