Estoy haciendo algunas funciones de la GUI de Swing con Java, y creo que mi pregunta es bastante simple; ¿Cómo se establece la posición del mouse?¿Cómo configuro la posición del mouse en Java?
Respuesta
Es necesario utilizar Robot
Esta clase se utiliza para generar eventos de entrada del sistema nativo para los propósitos de la automatización de pruebas, demostraciones autoejecutables, y otras aplicaciones donde se necesita el control del ratón y el teclado. El objetivo principal de Robot es facilitar las pruebas automatizadas de las implementaciones de la plataforma Java.
El uso de la clase para generar eventos de entrada difiere de la publicación de eventos en la cola de eventos AWT o componentes AWT en que los eventos se generan en la cola de entrada nativa de la plataforma. Por ejemplo,
Robot.mouseMove
realmente mover el cursor del ratón en lugar de sólo la generación de eventos de movimiento del ratón ...
Mira la clase Robot.
Como otros han dicho, esto se puede lograr usando Robot.mouseMove(x,y)
. Sin embargo, esta solución tiene una caída cuando se trabaja en una situación de múltiples monitores, ya que el robot funciona con el sistema de coordenadas de la pantalla principal, a menos que especifique lo contrario.
Aquí es una solución que permite pasar las coordenadas cualquier pantalla global basada punto:
public void moveMouse(Point p) {
GraphicsEnvironment ge =
GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice[] gs = ge.getScreenDevices();
// Search the devices for the one that draws the specified point.
for (GraphicsDevice device: gs) {
GraphicsConfiguration[] configurations =
device.getConfigurations();
for (GraphicsConfiguration config: configurations) {
Rectangle bounds = config.getBounds();
if(bounds.contains(p)) {
// Set point to screen coordinates.
Point b = bounds.getLocation();
Point s = new Point(p.x - b.x, p.y - b.y);
try {
Robot r = new Robot(device);
r.mouseMove(s.x, s.y);
} catch (AWTException e) {
e.printStackTrace();
}
return;
}
}
}
// Couldn't move to the point, it may be off screen.
return;
}
¿Funciona en la plataforma Linux? –
@ Daniel - pasaron años desde que respondió aquí, pero hoy lo encontré y ha resuelto un problema que había tenido durante muchos meses con clics inadvertidos del mouse al reposicionar el cursor de texto. Estuve tentado de usar Robot.mouseMove hasta que leí tu comentario. Extrañamente, ¡recién había comenzado a usar una configuración de monitores múltiples! Como usas clases con las que no estoy familiarizado, me sorprendió que todo lo que tenía que hacer era copiar tu código, hacer algunas importaciones y llamarlo. ¡Buen trabajo! ¡¡Gracias!! – DSlomer64
- 1. Obtener posición del mouse
- 2. Obteniendo la posición del mouse en C#
- 3. posición del cursor del mouse en Javascript?
- 4. addGlobalMonitorForEventsMatchingMask solo devolviendo la posición del mouse
- 5. onMouseMove obtener la posición del mouse
- 6. C# XNA Posición del mouse
- 7. Obteniendo la posición "global" del mouse en Mac OS X
- 8. Obteniendo la posición del mouse en el evento del teclado
- 9. jQuery Establecer posición del mouse (no posición del cursor)
- 10. Cocoa: Obteniendo la posición actual del mouse en la pantalla
- 11. Cómo obtener la posición del mouse sobre un cierto control
- 12. obteniendo la posición del mouse con javascript dentro del lienzo
- 13. Cambio en la posición del mouse cuando se agrega viewbox
- 14. Ubicación del mouse en java
- 15. ¿Cómo configuro la cantidad de elementos en el menú del búfer del mouse en Emacs?
- 16. Detectar la posición relativa del mouse en el lienzo matplotlib
- 17. WPF: ¿cómo puedo unir la posición de un control a la posición actual del mouse?
- 18. cambiar el buffer del mouse con java
- 19. JavaScript convierte la posición del mouse al rango de selección
- 20. ¿Cómo establecer la posición del cursor del mouse en C en Linux?
- 21. Buscar la posición del mouse relativo a un panel
- 22. Javascript: obtener la posición del mouse relativo al elemento principal
- 23. Mostrar la posición x e y del mouse con javascript
- 24. jQuery - Obtener la posición del mouse mientras arrastra el enlace
- 25. Configuración de la posición del mouse sin System.Windows.Forms
- 26. Obteniendo la posición del mouse relativa a un control
- 27. Cómo leer la posición de bajo nivel del clic del mouse en Linux.
- 28. Conversión de la posición del mouse a la posición mundial OpenGL
- 29. jQuery posición del mouse en mousedown() sin mousemove()
- 30. ¿Cómo rotar la imagen en relación con la posición del mouse?
Muy bien, gracias. Eso parece exactamente lo que necesito. –