Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 吕震中本:我怎样才能用鼠标移动事件?_Java_Gwt - Fatal编程技术网

Java 吕震中本:我怎样才能用鼠标移动事件?

Java 吕震中本:我怎样才能用鼠标移动事件?,java,gwt,Java,Gwt,在GWT中,拖动元素时如何获取“mouseUp”事件 我想得到以下流程: 穆斯敦 鼠标移动 。。。可能会有更多的鼠标移动 鼠标 当我不移动光标时,我可以得到“mouseDown”和“mouseUp”,但当我移动光标时,我不再得到“mouseUp”事件 我试图将event.preventDefault()无效 请提供帮助。尝试在MouseDown事件(即onMouseDown()中)内附加MouseUp处理程序。对于DnD,通常需要。当您停止拖动时,不要忘记(例如,向上移动鼠标和/或按esca

在GWT中,拖动元素时如何获取“mouseUp”事件

我想得到以下流程:

  • 穆斯敦
  • 鼠标移动
  • 。。。可能会有更多的鼠标移动
  • 鼠标
当我不移动光标时,我可以得到“mouseDown”和“mouseUp”,但当我移动光标时,我不再得到“mouseUp”事件

我试图将
event.preventDefault()无效


请提供帮助。

尝试在MouseDown事件(即onMouseDown()中)内附加MouseUp处理程序。

对于DnD,通常需要。当您停止拖动时,不要忘记(例如,向上移动鼠标和/或按escape键)


看看
com.google.gwt.user.client.ui.DialogBox的代码,它就是这样做的。

当然,MouseUp处理程序只在您在widtet上时才工作。这就是为什么您不能使用它进行拖放,因为一旦您移出小部件,它就不会对MouseUp事件做出反应

下面是一个简单的例子:

package XXX.client.XXXXXX;

import com.google.gwt.event.dom.client.MouseDownEvent;
import com.google.gwt.event.dom.client.MouseDownHandler;
import com.google.gwt.event.dom.client.MouseUpEvent;
import com.google.gwt.event.dom.client.MouseUpHandler;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.RootPanel;

public class MouseUp {
    public MouseUp(){
        Label label = new Label("hallo");
        label.getElement().getStyle().setProperty("backgroundColor","red");
        RootPanel.get().add(label);

        label.addMouseDownHandler(new MouseDownHandler() {

            @Override
            public void onMouseDown(MouseDownEvent event) {
                Label label = new Label("onMouseDown");
                RootPanel.get().add(label);             
            }
        });
        label.addMouseUpHandler(new MouseUpHandler() {

            @Override
            public void onMouseUp(MouseUpEvent event) {
                Label label = new Label("onMouseUp");
                RootPanel.get().add(label);                     
            }
        });
    }
}
如果你想使用拖放功能,我建议你看看

  • GWT处理程序“.addDrag…”

你说得对,伙计。我不知道你为什么会投反对票,但是鼠标上升事件是为特定的小部件注册的。如果鼠标悬停在另一个项目上,则不会触发该事件,因为它未注册+1来自methe event.preventDefault();阻止浏览器的标准事件处理。所以,如果你不想让图片和链接开始浏览器的拖动操作,就把它放在那里。这正是我需要的!非常感谢。