我想将<title>添加到使用蜡染从JFreeChart导出的svg图表中。我读过下面这篇有趣的论文http://www.svgopen.org/2009/papers/7-Enhancing_ServerSide_SVG_Generation_using_the_Batik_Extension_Handler_Mechanism/
Alternative URL
但是我遗漏了一些步骤。如果我用(例如) TooltipPaint替换实际的画图(一个颜色的实例)
pie.setSectionPaint(key,new TooltipPaint("some text", "a description"));我丢失了关于颜色的信息,那么如何以正确的方式进行?
发布于 2020-04-10 21:41:47
好了,现在它起作用了。主要问题是我向ExtensionSVGGraphics2D传递了一个SVGGeneratorContext。您必须通过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));
}https://stackoverflow.com/questions/59542902
复制相似问题