2013-01-17 20 views
1

我有一個元素定義爲HTML元素,即<canvas id = 'foo' width = '25' height = '40'></canvas>。我想提請這樣的:GWT無法在現有元素上定義畫布

import com.google.gwt.dom.client.Element; 
import com.google.gwt.user.client.DOM; 
Canvas canvas2 = Canvas.createIfSupported(); 
Element el = DOM.getElementById("foo"); 
canvas2.setElement(el); 

最後一行是在Eclipse中拋出一個錯誤,錯誤信息是從類型UIObject的方法setElement(元)是不可見的。我應該怎麼做才能糾正它?這是我正在導入的課程列表,是否有任何JAR衝突?

import com.google.gwt.canvas.client.Canvas; 
import com.google.gwt.canvas.dom.client.Context2d; 
import com.google.gwt.core.client.EntryPoint; 
import com.google.gwt.core.client.GWT; 
import com.google.gwt.dom.client.Element; 
import com.google.gwt.event.dom.client.ClickEvent; 
import com.google.gwt.event.dom.client.ClickHandler; 
import com.google.gwt.event.dom.client.KeyCodes; 
import com.google.gwt.event.dom.client.KeyUpEvent; 
import com.google.gwt.event.dom.client.KeyUpHandler; 
import com.google.gwt.user.client.DOM; 
import com.google.gwt.user.client.rpc.AsyncCallback; 
import com.google.gwt.user.client.ui.Button; 
import com.google.gwt.user.client.ui.DialogBox; 
import com.google.gwt.user.client.ui.HTML; 
import com.google.gwt.user.client.ui.HorizontalPanel; 
import com.google.gwt.user.client.ui.Label; 
import com.google.gwt.user.client.ui.RootPanel; 
import com.google.gwt.user.client.ui.TextBox; 
import com.google.gwt.user.client.ui.VerticalPanel; 
+0

您的類路徑中很可能存在一些JAR衝突。確保你沒有重複的JAR,(在Eclipse項目庫和你的運行時類路徑中)。 –

+0

GWT中Canvas的setElement()方法受到保護,因此您可能會遇到問題 – user902383

+0

那麼,如何訪問定義爲HTML的'Canvas'元素並將其寫入? – SexyBeast

回答

1

不幸的是,目前沒有簡單的方法來做到這一點。 Issue #6683在GWT的問題跟蹤器中對此開放。建議的解決方法是複製Canvas窗口小部件類並釋放構造函數的可見性......我不承認方便。