繁体   English   中英

如何让一个Graphic2D对象完全用Java跟踪鼠标指针?

[英]How do I get a Graphic2D object to follow a mouse pointer exactly in Java?

在下面的代码中,我只是使用鼠标监听器来获取鼠标的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);          
    }
}
  1. 不要调用你的类Canvas,有一个名称的AWT组件,所以它变得混乱。

  2. 通过覆盖JPanel的paintComponent()方法而不是paint()方法来完成自定义绘制。

  3. 您没有显示将MouseListener添加到面板的位置。 您可能正在将其添加到框架中。

如果您需要更多帮助,请发布证明问题的SSCCE

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM