这是一个在线svg编辑,它有一个文本编辑,我可以在JSVGCanvas中这样做吗?
http://svg-edit.googlecode.com/svn-history/r1771/trunk/editor/svg-editor.html
答案 0 :(得分:0)
首先,你的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()