我想将<title>
添加到使用蜡染从JFreeChart导出的svg图表中。我已阅读以下有趣的论文http://www.svgopen.org/2009/papers/7-Enhancing_ServerSide_SVG_Generation_using_the_Batik_Extension_Handler_Mechanism/
但是我缺少一些步骤。如果我将实际的Paint(Color的一个实例)替换为(例如)TooltipPaint
pie.setSectionPaint(key,new TooltipPaint("some text", "a description"));
我松开了有关颜色的信息,那么如何以正确的方式进行?
确定,现在可以了。主要问题是我正在将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));
}