Events 按住鼠标按钮
我正在使用GWT,希望在用户按住GWT按钮上的鼠标左键时执行一个操作。但我找不到正确的事件处理程序或其他解决方案 在GWT中有没有一种方法可以点击一个按钮,按住鼠标按钮,然后一次又一次地执行相同的操作,直到松开鼠标按钮Events 按住鼠标按钮,events,gwt,mouse,mouseevent,Events,Gwt,Mouse,Mouseevent,我正在使用GWT,希望在用户按住GWT按钮上的鼠标左键时执行一个操作。但我找不到正确的事件处理程序或其他解决方案 在GWT中有没有一种方法可以点击一个按钮,按住鼠标按钮,然后一次又一次地执行相同的操作,直到松开鼠标按钮 Button scrollUpBtn = new Button("Top"); scrollUpBtn.setWidth("66px"); scrollUpBtn.addMouseDownHandler(new MouseDownHandler() {
Button scrollUpBtn = new Button("Top");
scrollUpBtn.setWidth("66px");
scrollUpBtn.addMouseDownHandler(new MouseDownHandler() {
@Override
public void onMouseDown(MouseDownEvent event) {
//handCards.setVerticalScrollPosition(handCards.getVerticalScrollPosition() - 10);
mouseUp = true;
}
});
scrollUpBtn.addMouseUpHandler(new MouseUpHandler() {
@Override
public void onMouseUp(MouseUpEvent event) {
mouseUp = false;
}
});
scrollUpBtn.addKeyDownHandler(new KeyDownHandler() {
@Override
public void onKeyDown(KeyDownEvent event) {
if (mouseUp == true) {
handCards.setVerticalScrollPosition(handCards.getVerticalScrollPosition() - 10);
}
}
});
mouseDown=true代码>
mouseDown=false代码>
Andrei回答中的第3步假设KeyDownEvent将继续触发。我不确定是不是这样 另一种方法是使用向下和向上处理程序启动/停止执行操作的重复计时器。然后,您可以根据希望执行操作的频率设置重复间隔。请记住,这是作为单线程JavaScript运行的,因此,如果执行长时间的处理,事情会变慢,并且计划的时间间隔不会准时
Button btn= new Button("Button");
final Timer actionTimer = new Timer() {
@Override
public void run() {
// Your action here
System.out.println("Doing something!");
}
};
btn.addMouseDownHandler(new MouseDownHandler() {
@Override
public void onMouseDown(MouseDownEvent event) {
// Choose the appropriate delay
actionTimer.scheduleRepeating(1000);
}
});
btn.addMouseUpHandler(new MouseUpHandler() {
@Override
public void onMouseUp(MouseUpEvent event) {
actionTimer.cancel();
}
});
不起作用。我添加了我的代码。我希望你能帮我解决这个问题!尝试:如果(mouseUp){Window.alert(“按下键:+event.getNativeEvent().getKeyCode());}当你按下一个键时,你看到键代码了吗?顺便问一下,你想做什么?按住鼠标的同时按键不是常见的用户行为。您的用户如何理解这是您期望他们做的事情?