Нужно определить место клика мышки в 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)