使用带有GWT画布的拖动鼠标处理程序

aha*_*ert 1 gwt canvas mouseevent

我目前正在为GWT开发类似绘画的应用程序.我想添加一个鼠标处理程序,当用户将鼠标拖过画布时运行(如制作正方形等;),问题是我不确定要使用什么处理程序.查看在canvas中实现的处理程序已经引出了一些提示,但关于适用于哪个事件的文档很少.

有谁知道我应该如何实现它?谢谢.

Str*_*lok 6

没有"拖动"处理程序.你使用MouseDown,MouseMove和MouseUp事件进行"拖动".

class YourWidget extends Composite
{
    @UiField
    Canvas yourCanvas;

    private boolean dragging;
    private HandlerRegistration mouseMove;

    @UiHandler("yourCanvas")
    void onMouseDown(MouseDownEvent e) {
      dragging = true;
      // do other stuff related to starting of "dragging"
      mouseMove = yourCanvas.addMouseMoveHandler(new MouseMoveHandler(){
            public void onMouseMove(MouseMoveEvent e) {
                // ...do stuff that you need when "dragging"
            }
      });
    }

    @UiHandler("yourCanvas")
    void onMouseUp(MouseUpEvent e) {
      if (dragging){
          // do other stuff related to stopping of "dragging"
          dragging = false;
          mouseMove.remove(); // in earlier versions of GWT
          //mouseMove.removeHandler(); //in later versions of GWT
      }
    }
}
Run Code Online (Sandbox Code Playgroud)