JSVGCanvas中的文本编辑

时间:2013-05-20 09:28:27

标签: java swing canvas svg

这是一个在线svg编辑,它有一个文本编辑,我可以在JSVGCanvas中这样做吗?

http://svg-edit.googlecode.com/svn-history/r1771/trunk/editor/svg-editor.html

1 个答案:

答案 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()