这是一个在线 svg 编辑,它有一个文本编辑,我可以在 JSVGCanvas 中做到这一点吗?
http://svg-edit.googlecode.com/svn-history/r1771/trunk/editor/svg-editor.html
这是一个在线 svg 编辑,它有一个文本编辑,我可以在 JSVGCanvas 中做到这一点吗?
http://svg-edit.googlecode.com/svn-history/r1771/trunk/editor/svg-editor.html
一开始你的 JSVGCanvas 应该像这样显示空的 SVG:
DOMImplementation imp = SVGDOMImplementation.getDOMImplementation();
DocumentType type = imp.createDocumentType(SVGConstants.SVG_PUBLIC_ID, SVGConstants.SVG_SYSTEM_ID, null);
Document svgDoc = imp.createDocument(SVGDOMImplementation.SVG_NAMESPACE_URI, "svg", type);
JSVGCanvas canvas = new SVGCanvas(new SVGUserAgentAdapter(), true, true);
canvas.setDocumentState(JSVGCanvas.ALWAYS_DYNAMIC);
canvas.setSVGDocument(svgDoc);
添加用于获取 x、y 和文本的鼠标和键侦听器。创建文本元素后:
Element textElement = svgDoc.createElementNS(svgNS, "text");
textElement.setAttributeNS(null, "x", x);
textElement.setAttributeNS(null, "y", y);
textElement.setTextContent(text);
svgDoc.getDocumentElement().appendChild(textElement);
选择文本由 JSVGCanvas 的 textSelectionManager 提供:
canvas.getTextSelectionManager()