Java 如何存储鼠标位置?
我试图写一个if语句,在鼠标静止时做一些事情。我正试图通过这一点来实现这一点Java 如何存储鼠标位置?,java,mouseevent,Java,Mouseevent,我试图写一个if语句,在鼠标静止时做一些事情。我正试图通过这一点来实现这一点 Point storedPosition = MouseInfo.getPointerInfo().getLocation(); if (storedPosition == currentMousePosition){ // do things when mouse is still } else { // do things when mouse is moving } 如果我能正确获得当前鼠标位置,我可以使
Point storedPosition = MouseInfo.getPointerInfo().getLocation();
if (storedPosition == currentMousePosition){
// do things when mouse is still
} else {
// do things when mouse is moving
}
如果我能正确获得当前鼠标位置,我可以使用什么点来获取当前鼠标位置?您正在尝试检查鼠标位置是否已从上次检查更改
private static void checkMouseLocation() {
PointerInfo info = MouseInfo.getPointerInfo();
// This can sometimes be null, so check for it (e.g. when Windows' UAC
// screen is active)
if (info == null) {
return;
}
Point currentLocation = info.getLocation();
if (lastLocation != null && !lastLocation.equals(currentLocation)) {
lastMoved = System.currentTimeMillis();
triggerActivity();
}
lastLocation = currentLocation;
}
不要对此进行轮询,而是因为您可能使用事件驱动的GUI库使用事件:
- 启动与GUI兼容的计时器,如Swing计时器(如果这是Swing GUI)
- 使用某种类型的鼠标监听器(如果是Swing,则使用MouseMotionListener),在监听器中,如果计时器记录了鼠标移动,则停止计时器并重新启动它
在这种监听器的主体中,您可以触发鼠标移动/拖动时所需的任何代码什么意思
鼠标仍然
?当鼠标不移动/保持静止时,使用鼠标监听器(或类似结构,取决于您的GUI库)和GUI兼容计时器,如Swing GUI的Swing计时器。每当触发鼠标侦听器(或MouseMotionListener,如果是Swing)时,重新启动计时器。