Нужно определить место клика мышки в java

Я изучаю java но не могу понять как определить место клика все перерыл но внятного ответа не нашел. в месте где можно также рисовать. вот код(Там немного лишнего но я все по этой теме изучал что смог найти)

import java.awt.*;
import java.awt.event.MouseEvent;

public class Main {
    static class MyCanvas extends Canvas {
        static int x1 = 10;
        static int y1 = 20;
        public void paint(Graphics g) {
            g.setColor(Color.BLACK);
            g.drawLine(x1, y1, 200,200);
        }
        public void mouseClicked(MouseEvent e) {

            System.out.println(e.getX()+" "+e.getY());


        }
    }
    public void mouseClicked(MouseEvent e) {
        while (true) {
            double x = e.getX();
            double y = e.getY();
            pr(x, y);
        }
    }
    public void pr(double x, double y){
        System.out.println(x + " " + y);
    }
    public static void main(String[] args) throws InterruptedException {
        JFrame frame = new JFrame("nameOf");
        frame.setSize(200,200);
        Canvas canvas = new MyCanvas();
        frame.add(canvas);
        frame.setVisible(true);

        /*while (true) {
            Thread.sleep(1000);

            canvas.repaint();
            Point location = MouseInfo.getPointerInfo().getLocation();
            double x = location.getX();
            double y = location.getY();
            //System.out.println(x+" "+y);
        }*/
    }
}```

JDK 1.8.0_352

Ответы (1 шт):

Автор решения: Rustam Kadimov

Один из способов это создать объект MouseListener

MouseListener ml = new MouseListener() {
        @Override
        public void mouseClicked(MouseEvent e) {
            double x = e.getX();
            double y = e.getY();
            System.out.println(x + " , " + y);
        }

        @Override
        public void mousePressed(MouseEvent e) {

        }

        @Override
        public void mouseReleased(MouseEvent e) {

        }

        @Override
        public void mouseEntered(MouseEvent e) {

        }

        @Override
        public void mouseExited(MouseEvent e) {

        }
    };

а затем добавить для canvas слушателя canvas.addMouseListener(ml)

→ Ссылка