我想在GWT中繪製一個圓圈,並帶有一些鼠標懸停和拖放支持。在GWT中可以這樣做嗎?你能提供一個示例代碼嗎?在gwt中使用html5畫布繪製圓圈?
1
A
回答
4
是的,你可以。僞代碼將是這樣的 -
Canvas canvas = Canvas.createIfSupported();
Context2d context=canvas.getContext2d();
RootPanel.get(A_HOLDER_DIV_ID).add(canvas);
添加處理程序如下 -
1)鼠標按下處理程序來獲取拖動
canvas.addMouseDownHandler() -
//catch the start of the circle drag,
//clear the canvas
//Note the startx & starty
1)鼠標向上處理程序的開始拖動結束開始
canvas.addMouseUpHandler() -
//catch the end of the circle drag,
//mark dragging as stopped
3)鼠標移動處理程序創建圓圈
canvas.addMouseMoveHandler() -
//if drag started through event 1 then -
//get x & y;
//calculate centre of circle and radius based on startx, starty and x & y above
//Clear the canvas
//And add the following code
context.setFillStyle(color);
context.beginPath();
context.arc(calculatedCenterx, calculatedCentery, radius, 0, Math.PI * 2.0, true);
context.closePath();
context.fill();
編輯 - 就以如何開始使用GWT HTML5畫布
0
這就是一種方法啓動一起來看看這款good example。另一種是使用Lienzo這樣的框架來抽象所有的代碼。您可以從盒子中獲取事件,動畫和轉換。 Lienzo是一個使用GWT實現的Java圖形工具包,面向HTML5的畫布。 Lienzo是Apache 2,所以它是免費的。
要做到使用Lienzo了一圈,你會做這樣的事情:
Circle circle = new Circle(radius);
circle.setX(xCoord);
circle.setY(yCoord);
circle.setDraggable(true);
circle.addNodeMouseClickHandler(new NodeMouseClickHandler() {
@Override
public void onNodeMouseClick(NodeMouseClickEvent event) {
...
}
});
有可以聽更多的事件,但一個是最常見的。
祝你好運!
相關問題
- 1. Javascript HTML5畫布繪製透明圓圈
- 2. 使用JavaScript在HTML5畫布上繪製倍數下降圓圈
- 3. 在畫布中心繪製圓圈
- 4. 在畫布上繪製交互圓圈
- 5. 如何使用畫布繪製HTML5中的1/4圈圈
- 6. 如何在多個畫布上繪製圓圈html5?
- 7. HTML5畫布 - 繪製線段和圓圈 - 一個圓圈的不同顏色
- 8. 如何在HTML5畫布上繪製圓圈作爲單獨的畫布?
- 9. Javascript畫布繪製矩形或圓圈
- 10. 動畫 - 在iOS中繪製圓圈 - 未完成圓圈動畫
- 11. 如何在android中繪製聯鎖圓圈使用畫布
- 12. html5畫布繪製帶有額外數據的圓圈變量
- 13. 使用鼠標事件在HTML5畫布上繪製圓/橢圓
- 14. 一旦用戶點擊它,移除在html5畫布中繪製的圓圈
- 15. 使用JSON結果在畫布上繪製多個圓圈
- 16. 什麼是在HTML5畫布中繪製X個圓圈的最快方式?
- 17. 在佈局中畫圓圈
- 18. 如何使用HTML5畫布繪製甜甜圈
- 19. 繪製用戶在畫布上觸摸過的圓圈
- 20. 在(QML/Javascript)畫布中繪製模糊的圓圈
- 21. 如何在Android中通過畫布繪製圓圈?
- 22. HTML5畫布繪製
- 23. 在C++中繪製圓圈
- 24. 在android中繪製圓圈
- 25. 在MATLAB中繪製圓圈
- 26. 使用HTML5畫布繪製圓形部分 - Math.PI
- 27. 如何清除HTML5畫布中的圓弧或圓圈?
- 28. JavaScript - 無法用畫布繪製適當的圓圈
- 29. 用二次曲線繪製畫布的圓圈
- 30. 在畫布上繪製隨機彩色圓圈