Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JSVGCanvas中的文本编辑_Java_Swing_Canvas_Svg - Fatal编程技术网

Java JSVGCanvas中的文本编辑

Java JSVGCanvas中的文本编辑,java,swing,canvas,svg,Java,Swing,Canvas,Svg,这是一个在线svg编辑,它有一个文本编辑,我可以在JSVGCanvas中进行吗 首先,您的JSVGCanvas应该显示空SVG,如下所示: DOMImplementation imp = SVGDOMImplementation.getDOMImplementation(); DocumentType type = imp.createDocumentType(SVGConstants.SVG_PUBLIC_ID, SVGConstants.SVG_SYSTEM_ID, null); Docum

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


首先,您的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()

没人知道?我很担心!!