Obtener la posición del cursor en pantalla

2816 vistas

A partir de un componente con MouseEvent
Registrando un MouseEvent al componente gráfico, podemos tener acceso a la posición del ratón relativa al componente. Con esto y el uso del método getLocationOnScreen() de Component podemos calcular la posición del ratón con respecto a la pantalla.



java
  1. int x = (int)(mouseEvent.getPoint().getX() + miComponente.getLocationOnScreen().getX());
  2. int y = (int)(mouseEvent.getPoint().getY() + miComponente.getLocationOnScreen().getY());



También podemos usar el método convertPointToScreen() de la clase javax.swing.SwingUtilities. Por ejemplo:



java
  1. MouseEvent event =...;
  2. Component composant =...;
  3. Point locationComponente = event.getPoint();
  4. Point locationPantalla = SwingUtilities.convertPointToScreen(locationComponente, componente);



Sin componente gráfico

A partir de Java 5.0, podemos usar el objeto MouseInfo del paquete java.awt. Por ejemplo:



java
  1. PointerInfo pointer = MouseInfo.getPointerInfo();
  2. Point location = pointer.getLocation();
  3. System.out.println("El ratón está en " + location);



Nota: la instancia de PointerInfo no se actualiza de forma automática. Tendremos que recuperar una nueva instancia cada vez que queramos consultarla.