使用 batik 向 DOM 文档添加元素
Adding an element to a DOM document with batik
晚上好,
我的问题是在我的 DOM 文档中添加元素(矩形)时。
加法如下:
正在创建元素矩形浅蓝色/荧光
Node node = doc.createElement("rect");
Element elem = (Element)node;
elem.setAttribute("fill", obj.getColor());
包含在一组元素g
Node newZone = doc.createElement("g");
Element elemZone = (Element)newZone;
elemZone.setAttribute("id", zone);
将元素rect添加到元素g
elemZone.appendChild(elem);
添加到文档
doc.getElementById(idUse).appendChild(elemZone);
正在更新文档 JSVGCanvas(允许显示 svg)
svg.setDocument(doc);
虽然看起来也很奇怪,但考虑到了更改,因为当我保存文档并显示文件时,我看到了更改。
但是应用程序中的任何内容都没有更新。
此外,我按照相同的过程添加了一个元素(符号+使用)。
JSVGCanvas 和更新文档考虑周到,也可见。
提前感谢您的帮助...
备注:
- 重新绘制经过测试的 np 次。
- 使用文档启动应用程序:矩形看起来不错。
SVG 元素必须在 SVG 命名空间中创建,因此替换
Node node = doc.createElement("rect");
来自
Node node = doc.createElementNS("http://www.w3.org/2000/svg", "rect");
与 <g>
元素相同。序列化和反序列化文档将解决命名空间问题,这就是为什么您在重新加载时看不到它的原因。
对于蜡染你还必须调用
jsvgCanvas.setDocumentState(JSVGCanvas.ALWAYS_DYNAMIC);
也在加载内容之前,并在 update manager's 线程中进行所有更改。
晚上好,
我的问题是在我的 DOM 文档中添加元素(矩形)时。
加法如下:
正在创建元素矩形浅蓝色/荧光
Node node = doc.createElement("rect");
Element elem = (Element)node;
elem.setAttribute("fill", obj.getColor());
包含在一组元素g
Node newZone = doc.createElement("g");
Element elemZone = (Element)newZone;
elemZone.setAttribute("id", zone);
将元素rect添加到元素g
elemZone.appendChild(elem);
添加到文档
doc.getElementById(idUse).appendChild(elemZone);
正在更新文档 JSVGCanvas(允许显示 svg)
svg.setDocument(doc);
虽然看起来也很奇怪,但考虑到了更改,因为当我保存文档并显示文件时,我看到了更改。
但是应用程序中的任何内容都没有更新。
此外,我按照相同的过程添加了一个元素(符号+使用)。 JSVGCanvas 和更新文档考虑周到,也可见。
提前感谢您的帮助...
备注: - 重新绘制经过测试的 np 次。 - 使用文档启动应用程序:矩形看起来不错。
SVG 元素必须在 SVG 命名空间中创建,因此替换
Node node = doc.createElement("rect");
来自
Node node = doc.createElementNS("http://www.w3.org/2000/svg", "rect");
与 <g>
元素相同。序列化和反序列化文档将解决命名空间问题,这就是为什么您在重新加载时看不到它的原因。
对于蜡染你还必须调用
jsvgCanvas.setDocumentState(JSVGCanvas.ALWAYS_DYNAMIC);
也在加载内容之前,并在 update manager's 线程中进行所有更改。