Boa tarde pessoal, estou desenvolvendo uma aplicação de teste que me mostra o monitor (Device) que o mouse se encontra, e mostra também a posição dele.
Consegui pegar o monitor em que o mouse está através do comando:
MouseIngo.getPointerInfo().getDevice();
E buscando a posição do mouse através do comando:
MouseInfo.getPointerInfo().getLocation()
Problema: A posição do mouse que me é retornada é com base no monitor principal, quando eu passo o cursor para outro monitor (extendido), a posição do mouse fica negativa.
Pergunta: Como pegar a posição do cursor com base no monitor em que ele se encontra?
Espero ter sido claro, obrigado!
[quote=pisicotico]Boa tarde pessoal, estou desenvolvendo uma aplicação de teste que me mostra o monitor (Device) que o mouse se encontra, e mostra também a posição dele.
Consegui pegar o monitor em que o mouse está através do comando:
MouseIngo.getPointerInfo().getDevice();
E buscando a posição do mouse através do comando:
MouseInfo.getPointerInfo().getLocation()
Problema: A posição do mouse que me é retornada é com base no monitor principal, quando eu passo o cursor para outro monitor (extendido), a posição do mouse fica negativa.
Pergunta: Como pegar a posição do cursor com base no monitor em que ele se encontra?
Espero ter sido claro, obrigado![/quote]
Subtraia das coordenadas recebidas a resolução do monitor principal!
xD
Sério! Se o monitor principal tem 800 de largura e o método retornou posição 1000, 1000 - 800 = 200, que é a posição x no outro monitor!
Provavelmente isso depende do layout usado pra dividir os monitores (clone, extend, etc…) pelo driver da placa de vídeo, que não deve fornecer essa informação nativamente, mas é uma conta tão simples que seria desnecessário que houvesse um método nativo para isso…
