gpt4 book ai didi

gwt - 制作一个简单的叠加类?

转载 作者:行者123 更新时间:2023-12-01 04:20:21 26 4
gpt4 key购买 nike

我想在 GWT 中创建一些非常简单的覆盖类来包装一些 SVG 内容。我基本上想绘制一个矩形,这就是我在 javascript 中的做法:

var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
svg.setAttribute('width', '100%');
svg.setAttribute('height', '100%');
document.body.appendChild(svg);

var rect = document.createElementNS('http://www.w3.org/2000/svg','rect');
rect.setAttribute("width","300");
rect.setAttribute("height","100");
svg.appendChild(rect);

现在我无法将其转换为 GWT。我希望我可以对所有这些调用做一个非常薄的覆盖,就像这样:
public class SVGPanel extends JavaScriptObject {
protected SVGPanel() {}

public static native SVGPanel create(String width, String height) /*-{
var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
svg.setAttribute('width', width);
svg.setAttribute('height', height);
return svg;
}-*/;
}

public MyProject implements EntryPoint {

public void onModuleLoad() {
SVGPanel panel = SVGPanel.create("100%", "100%");
Document.get().getBody().appendChild(panel);
}
}

是的,但我不了解我们如何从 SVG 内容的 javascript 表示跳转到 GWT java 类。一方面,SVGPanel 类扩展了 JavaScriptObject,但我不能简单地将它添加到 Document 主体类,因为它需要一个 Element 类型。如果有人能指出做那座桥的正确方法,我应该能够在那之后继续前进。

另外,我不确定这是否是合并一些简单 SVG 类的最佳方式,我应该使用 DOM 类而不是尝试使用 JSNI 对它们进行建模吗?

谢谢

最佳答案

您需要为 appendChild 提供一个元素。因此,只需让您的覆盖类扩展 Element 而不是 JavaScriptObject。

public class SVGPanel extends Element {

请注意,Element 是 JavaScriptObject 的子类。

关于gwt - 制作一个简单的叠加类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2134505/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com