Cómo obtener la ubicación del puntero del mouse en relación con el marco
-
12-12-2019 - |
Pregunta
Quiero obtener la ubicación del mouse en relación con el marco.
mouseinfo Dame la ubicación absoluta.
¿Cómo obtener la peisición en relación con el marco?Tahnks.
Solución
Obtenga la ubicación absoluta del marco con GetLocationScreen (), y luego calcule la distancia relativa.
Otros consejos
Primero, camina por el árbol desde su alcance actual hasta la parte superior (que será el marco):
Container container = this.getParent();
Container previous = container;
while (container != null)
{
previous = container;
container = container.getParent();
}
anterior es el contenedor superior
if (previous instanceof JFrame)
{
Point p = ((JFrame)previous).getMousePosition();
System.out.println(p); // or do what you need to with p
}
Para calcular la ubicación del mouse en relación con el marco , debe restar la ubicación absoluta del mouse de la ubicación del marco , Cancelando así los puntos extraños de la esquina superior izquierda del marco a la esquina superior izquierda de la pantalla.
Para obtener la ubicación del mouse en relación con el marco como un punto :
public Point getLocationRelativeTo() {
int x = frame.getX() - MouseInfo.getPointerInfo().getLocation().x;
int y = frame.getY() - MouseInfo.getPointerInfo().getLocation().y;
return new Point(x, y);
}
para obtener la X como una int :
public int getXRelativeTo() {
int x = frame.getX() - MouseInfo.getPointerInfo().getLocation().x;
return x;
}
para obtener el Y como un int :
public int getXRelativeTo() {
int y = frame.getY() - MouseInfo.getPointerInfo().getLocation().y;
return y;
}
Espero que lo ayude.:)
Para obtener más información, visite http:// docs.orace.com / javase / 7 / docs / api / java / awt / mouseinfo.html