2011-04-20 90 views
2

使用GWT,我在网页上显示图像,我的目标是让用户裁剪它。用户通过点击图像的特定部分,移动鼠标并将其释放到其他地方来绘制想象的边界框。通过使用MouseDownHandler()MouseUpHandler(),我计划记录鼠标光标的开始和结束角。GWT图像裁剪与浏览器中拖放问题

但是,当我在网络上部署我的工作时,出现这样的问题:当用户单击图像并尝试绘制想象的边界框时,Web浏览器(我的情况是Google Chrome)将其检测为拖放操作。

因此,我无法让我的mouseDown()mouseUp()函数正常工作。我该如何避免浏览器进行拖放操作?

代码:

public void onModuleLoad(){ 
    RootPanel.get().add(img1); 

    img1.addMouseDownHandler(new MouseDownHandler() { 
      @Override 
      public void onMouseDown(MouseDownEvent event) { 
       startX = event.getX(); 
       startY = event.getY(); 
      } 
    }); 

    img1.addMouseUpHandler(new MouseUpHandler() { 
      @Override 
      public void onMouseUp(MouseUpEvent event) { 
       endX = event.getX(); 
       endY = event.getY(); 
       img1.setVisibleRect(startX, startY, endX-startX, endY-startY); 
      } 
    }); 
} 
+1

我认为这是不可能的。你将不得不为此寻找另一种解决方法......我今晚看看它。 – 2011-04-20 16:25:05

+2

我在一个完全不相关的例子中找到了解决方案。通过添加语句“event.preventDefault();”在MouseDownHandler和MouseUpHandler中,阻止了拖放机制。感谢那些发布和帮助的人。 – yunusual 2011-04-21 16:37:14

+0

不错,你与我们分享这个。不知道你可以阻止它! – 2011-04-21 18:01:05

回答

0

也许你可以使用HTML5。我在这里发现了this先前的问题,Stack OverFlow描述了同样的问题。另外,我在code.google.com上找到code example 希望这会使您找到解决方案。