@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()).
Таким образом, добавив данную логику в слушатель событий мыши, можно получить координаты мыши относительно окна приложения и выполнить необходимые действия на их основе.