我想在CanvasElement
窗口小部件中包含<canvas>
(Canvas
在HTML中)。
许多小部件(例如Label)都有一个静态方法SomeWidget.wrap(Element)
,用于包装现有的DOM元素。
我认为Canvas没有这样的方法,因为不是所有的浏览器都支持,因此用户应该被迫通过createIfSupported()
。
不幸的是,Canvas中的构造函数是私有的(受保护可以工作),这意味着Canvas不能被子类化。 (派生类中没有可用的构造函数。)
createIfSupported
的代码片段和Canvas类中的构造函数:
public static Canvas createIfSupported() {
// check if canvas is supported; if it is not supported: return null
return new Canvas(element);
}
private Canvas(CanvasElement element) {
setElement(element);
}
我最终复制了Canvas类并使构造函数公开。
有更好的方法吗?
如果没有,背后的原因是什么(除了可能不支持<canvas>
)?
我正在使用GWT版本2.4.0.rc1。
谢谢, 儒略
答案 0 :(得分:1)