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.

¿Fue útil?

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top