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