gpt4 book ai didi

Java - 卡住鼠标

转载 作者:行者123 更新时间:2023-11-30 08:23:22 27 4
gpt4 key购买 nike

有没有办法在 Java 中将鼠标锁定在一个位置一段时间?

我已经试过了:

while(timer == true){

Robot bot = new Robot();
bot.mouseMove(x, y);

}

但是当用户移动鼠标时,它会令人不快地来回跳动(从用户拖动的位置到应该锁定的位置)。

如果有更好的方法,您有什么想法吗?或者我可以完全禁用鼠标的用户输入吗?提前致谢!

最佳答案

这是您所能达到的极限(至少对于标准库而言)。鼠标“跳跃”取决于系统,特别是听众的“采样率”。我不知道 JVM 参数会影响它,但如果有这种精神,我不会感到惊讶。跳跃与鼠标加速度成反比关系(鼠标可以在样本之间移动“长”距离)。

public class Stop extends JFrame {

static Robot robot = null;
static Rectangle bounds = new Rectangle(300, 300, 300, 300);
static int lastX = 450; static int lastY = 450;

Stop() {

try {
robot = new Robot();
} catch (AWTException e) {
e.printStackTrace();
}
addMouseMotionListener(new MouseStop());

getContentPane().add(new JLabel("<html>A sticky situation<br>Hold SHIFT to get out of it", JLabel.CENTER));
setDefaultCloseOperation(EXIT_ON_CLOSE);
setBounds(bounds);
setVisible(true);
}

private static class MouseStop extends MouseAdapter {

@Override
public void mouseMoved(MouseEvent e) {

if(e.isShiftDown()) {
lastX = e.getXOnScreen();
lastY = e.getYOnScreen();
}
else
robot.mouseMove(lastX, lastY);
}
}

public static void main(String args[]) {

new Stop();
}
}

编辑:我刚刚想到了一个想法,涉及绘制光标,使其看起来好像鼠标根本没有移动。如果我能正常工作,我会添加代码。

关于Java - 卡住鼠标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23724973/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com