0

我似乎在使用 batikSVG 使用 Java 操作 SVG 时遇到问题。我可以在 JSVG Canvas 上很好地显示 SVG,但是当我尝试使用 getSVGDocument 显示画布的 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。请帮忙!

4

1 回答 1

1

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

   jSVGCanvas1.addSVGDocumentLoaderListener(new SVGDocumentLoaderAdapter() {
        public void documentLoadingCompleted(SVGDocumentLoaderEvent e) {
          SVGDocument doc = jSVGCanvas1.getSVGDocument();
          if(doc==null)System.out.println("null");
        }
    });
于 2012-12-28T09:31:04.873 回答