SVGCanvas.setDocument(svgDoc)渲染每次都不执行

时间:2017-04-03 16:26:54

标签: java svg batik

我有一个Java Batik程序,它修改一个Document并在JSVGCanvas中呈现修改。通过更改Node项的颜色来进行修改。 第一次渲染发生,svgCanvas.setDocument(svgDoc)显示更改。 后续渲染显示在SVGCanvas中。 然而,GVTTreeRendererAdapter()告诉渲染开始然后每次完成。 我检查了SVG文档,每次都进行修改。

private String modifySVG(String fromString, String toString) {

 NodeList nList = svgDoc.getElementsByTagName("defs");
 String defs;

 for (int temp = 0; temp < nList.getLength(); temp++) {
    Node nNode = nList.item(temp);
    if (nNode.getNodeType() == Node.ELEMENT_NODE) {
        eElement = (Element) nNode;
        defs = eElement.getElementsByTagName("style").item(0).getTextContent();
        defs = defs.replace(fromString, toString);
        eElement.getElementsByTagName("style").item(0).setTextContent(defs);

   }
 }
svgCanvas.setDocument(svgDoc);
return defs;

}

0 个答案:

没有答案