JSVGCanvas.getSVGDocument()返回null?

时间:2012-12-28 08:11:59

标签: java svg batik

我似乎在使用batikSVG处理使用Java来修改SVG时遇到了问题。我可以在JSVG Canvas上显示SVG,但是当我使用getSVGDocument尝试使用canvas的SVGDocument时,它似乎返回null。为什么会这样,我怎样才能得到实际的文件?

jSVGCanvas1.setURI(new File("circle.svg").toURI().toString());

    jSVGCanvas1.setDocumentState(JSVGCanvas.ALWAYS_DYNAMIC);
    SVGDocument doc =   jSVGCanvas1.getSVGDocument();
    if(doc==null)System.out.println("null");

最后一行测试doc为null的位置,并始终打印为null。请帮忙!

1 个答案:

答案 0 :(得分:1)

您需要等待文档加载,并且异步发生。像这样......

   jSVGCanvas1.addSVGDocumentLoaderListener(new SVGDocumentLoaderAdapter() {
        public void documentLoadingCompleted(SVGDocumentLoaderEvent e) {
          SVGDocument doc = jSVGCanvas1.getSVGDocument();
          if(doc==null)System.out.println("null");
        }
    });