addMouseMotionListener(new MouseAdapter() {
public void mouseMoved(MouseEvent e) {
relativeX = e.getX();
relativeY = e.getY();
System.out.println(relativeX + "," + relativeY);
System.out.println(x + "," + y);
x = x + speedX;
y = y + speedY;
repaint();
if (x > relativeX) {
speedX = speed * -1;
} else if (x < relativeX) {
speedX = speed;
}
if (y > relativeY) {
speedY = speed * -1;
} else if (y < relativeY) {
speedY = speed;
}
}
});
大家好,我创建了一个鼠标运动监听器,球将跟随鼠标移动的方向。但是,一旦我停止移动鼠标,球就会停止移动。即使我的鼠标光标和球的位置之间有相当远的距离,球只是拒绝移动到我的鼠标位置。我认为这是因为我的运动监听器停止工作,因为我不再移动鼠标。有没有人知道如何强制球移动到我鼠标的确切位置。(第一次询问堆栈溢出希望每个人都能理解我的语法)
private void doDrawing(Graphics g) {
radius = 20;
Graphics2D g2d = (Graphics2D) g;
g2d.setColor(red);
g2d.fillOval((int) x, (int) y, radius, radius);
}
这就是移动的球。