GWT:从CanvasElement创建画布小部件
我想在GWT:从CanvasElement创建画布小部件,gwt,html5-canvas,Gwt,Html5 Canvas,我想在画布小部件中包装画布元素(HTML格式) 许多小部件(例如Label)都有一个静态方法SomeWidget.wrap(Element),用于包装现有的DOM元素。 我想Canvas不支持这种方法,因为不是所有浏览器都支持,因此用户必须通过createIfSupported() 不幸的是,Canvas中的构造函数是私有的(protected将起作用),这意味着Canvas不能被子类化。(派生类中没有可用的构造函数。) Canvas类中的createIfSupported和构造函数的代码片段:
画布
小部件中包装画布元素
(
HTML格式)
许多小部件(例如Label)都有一个静态方法SomeWidget.wrap(Element)
,用于包装现有的DOM元素。
我想Canvas不支持这种方法,因为不是所有浏览器都支持,因此用户必须通过createIfSupported()
不幸的是,Canvas中的构造函数是私有的(protected将起作用),这意味着Canvas不能被子类化。(派生类中没有可用的构造函数。)
Canvas类中的createIfSupported
和构造函数的代码片段:
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类并公开了构造函数
有更好的方法吗?
如果没有,背后的原因是什么(除了
可能不受支持之外)
我使用的是GWT版本2.4.0.rc1
谢谢,
Julian这个问题由来已久,但在更新版本的GWT中有一个解决方案:
Canvas.wrap(canvasElement);
看
我不知道它是在哪个版本的GWT中添加的,但它可以在2.7.0上运行