0

JPanelJFrame 上有一个,JPanel如下所示 -

public class MyPanel extends JPanel implements MouseListener,
        MouseMotionListener {
    ...
    @Override
    public void mouseClicked(MouseEvent arg) {
            ...
        Point p = arg.getPoint();
            // save this point  ... 
            ...
            repaint();

    }

    @Override
    protected void paintComponent(Graphics g) {
        ...
        // point1 & point2 are the last two clicked point ..
        super.paintComponent(g);
        int x1 = point1.x;
        int y1 = point1.y;

        int x2 = point2.x;
        int y2 = point2.y;
        g.drawLine(x1, y1, x2, y2);
    }

}

我的问题是drawline绘制的线条与原始组件上的实际点击点位置略有偏差。

我附上了一些更清晰的截图 -

上面的线边缘是我点击它们的 2 个点,下面的线是从 接收到的线drawline,并且你可以看到这 2 条线不重叠。

点击 1 -

在此处输入图像描述

点击 2 -

在此处输入图像描述

输出线——

在此处输入图像描述

任何有用的解决方案?

4

0 回答 0