В приведенном ниже коде я просто использовал слушатель мыши, чтобы получить координаты XY мыши, а затем вызвать перерисовку. В методе рисования я нарисовал прямоугольник, используя те же координаты XY для позиции. Прямоугольник следует, но на расстоянии от указателя мыши. Я ожидаю, что верхний левый угол прямоугольника коснется указателя мыши.
Я что-то не так делаю?
Почему между указателем мыши и объектом Rectangle есть расстояние?
public void mouseMoved(MouseEvent e){
x = e.getX();
y = e.getY();
repaint();
}
public class Canvas extends JPanel{
Canvas(){}
public void paint(Graphics g){
Graphics2D g2 = (Graphics2D)g;
g2.setPaint(Color.red);
g2.fillRect(x, y, 50, 50);
}
}