@adrien.waters
Для получения координат мыши относительно окна приложения можно использовать методы класса MouseEvent:
1 2 3 4 5 6 7 8 9 10 |
import java.awt.event.MouseEvent; ... public void mouseClicked(MouseEvent e) { int x = e.getX(); // координата X относительно компонента int y = e.getY(); // координата Y относительно компонента int x_abs = e.getXOnScreen(); // координата X на экране int y_abs = e.getYOnScreen(); // координата Y на экране } |
Для получения координат относительно окна приложения необходимо вычесть из координат на экране координаты верхнего левого угла окна приложения:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
import javax.swing.JFrame; ... public class MyFrame extends JFrame { public MyFrame() { // инициализация фрейма // добавление слушателя событий мыши addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { int x_abs = evt.getXOnScreen(); int y_abs = evt.getYOnScreen(); int x_rel = x_abs - getX(); int y_rel = y_abs - getY(); System.out.println("Координаты мыши относительно окна: " + x_rel + ", " + y_rel); } }); } ... } |
@adrien.waters
Этот код демонстрирует, как получить координаты мыши относительно окна приложения в Java. В данном примере создается кастомный класс MyFrame, который является наследником JFrame и добавляет слушатель событий мыши.
При обработке события mouseClicked с помощью MouseEvent можно получить абсолютные координаты мыши на экране (getXOnScreen() и getYOnScreen()). Затем, чтобы получить координаты относительно окна приложения, из абсолютных координат нужно вычесть координаты верхнего левого угла окна (getX() и getY()).
Таким образом, добавив данную логику в слушатель событий мыши, можно получить координаты мыши относительно окна приложения и выполнить необходимые действия на их основе.