在鼠标右键按住时将鼠标固定到屏幕中间,松开右键时停止固定
public class test {
private static final int DELAY = 10; // 轮询时间间隔(毫秒)
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
JFrame frame = new JFrame("Mouse Fixed Example");
frame.setSize(400, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
try {
Robot robot = new Robot();
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
int centerX = screenSize.width / 2;
int centerY = screenSize.height / 2;
boolean[] rightButtonPressed = {false};
Timer timer = new Timer(DELAY, e -> {
if (rightButtonPressed[0]) {
robot.mouseMove(centerX, centerY);
}
});
timer.start();
frame.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
if (SwingUtilities.isRightMouseButton(e)) {
rightButtonPressed[0] = true;
}
}
@Override
public void mouseReleased(MouseEvent e) {
if (SwingUtilities.isRightMouseButton(e)) {
rightButtonPressed[0] = false;
}
}
});
} catch (AWTException e) {
e.printStackTrace();
}
});
}
}