我似乎在使用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。请帮忙!
答案 0 :(得分:1)
您需要等待文档加载,并且异步发生。像这样......
jSVGCanvas1.addSVGDocumentLoaderListener(new SVGDocumentLoaderAdapter() {
public void documentLoadingCompleted(SVGDocumentLoaderEvent e) {
SVGDocument doc = jSVGCanvas1.getSVGDocument();
if(doc==null)System.out.println("null");
}
});