Capturar click em qualquer parte da tela

Boa tarde galera estou criando uma app que tem que pegar a posição mouse em qualquer parte da tela, mas não estou conseguindo já tentei fazer assim e nada


public static void main(String[] args) {
		Toolkit.getDefaultToolkit().addAWTEventListener(new Listener(), AWTEvent.MOUSE_EVENT_MASK);  
		JFrame frame = new JFrame();  
		frame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);  
		frame.setVisible(true);  
	}

	private static class Listener implements AWTEventListener {
		public void eventDispatched(AWTEvent event) {  
			System.out.print(MouseInfo.getPointerInfo().getLocation() + " | ");  
			System.out.println(event);  
		}
	}

Neste caso só funciona se eu estiver com o mouse dentro do JFrame em qualquer outra parte não funciona alguém teria alguma ideia ??
Abs.

Bom dia Robson

É necessário realizar um click dentro do seu frame para ativar o listener que você implementou, porém o seu frame não tem nenhuma dimensão

adicione o seguinte código:

frame.setSize(100, 100);

depois da instância do seu frame.

e realize um click no mesmo.

Abraços

Caro jscamara , acho que não fui claro eu não quero clicar em nenhum frame , mas sim em qualquer parte do sistema é como se a minha aplicação ficasse rodando em backgorund e capturando os cliks que eu fosse dando sem nenhuma janela.

Abs.

Pra isso você precisa acessar as API´s do sistema operacional.

jaboot, teria alguma documentação classe ou exemplo para eu ter uma ideia de como começar ??

Abs.

Talvez isso ajude: Systray com Java 6

fiz um teste aqui usando as suas classes e funcionou perfeitamente. com a diferença que usei meu proprio jframe com seus botes, text, etc.

segue a saida do console:
java.awt.Point[x=156,y=45] |
java.awt.Point[x=306,y=58] |
java.awt.Point[x=306,y=58] |
java.awt.Point[x=466,y=60] |
java.awt.Point[x=466,y=60] |
java.awt.Point[x=662,y=22] |

Dá certo somente quando você clica dentro do Frame quando se clica fora não funciona.

quero quando clique fora do frame

[quote=robson.nunes]Dá certo somente quando você clica dentro do Frame quando se clica fora não funciona.

quero quando clique fora do frame[/quote]

vc quer clicar fora da sua aplicação e funcionar, tipo esses programas hacker, eh isso?

Acredito que isso não seja um programa hacker…e o que eu quero é que minha aplicação fique rodando em background enquanto eu vou clicando em qualquer parte da minha tela do sistema operacional e a minha aplicação intercepte o clique do mouse e pegue a posição do ponteiro.

eu disse tipo programa hacker, desses que ficam capturando eventos do SO.
isso que vc quer eh chato fazer em java, ja muitos topicos desse tipo aqui e nenhum teve solução. com certeza vai precisar usar codigo nativo em C ou coisa do tipo.
fico devendo essa, boa sorte!
se conseguir posta o codigo pra galera

abração!

ok mauricioadl, ninguém aqui no forum tem alguma ideia de como resolver este caso, por favor galera me ajudem.

abs.

cara, fiz um teste bobo aqui e so faltou pensar um pouco. o comando:
MouseInfo.getPointerInfo().getLocation()
pega a posicao do mouse onde quer que ele esteja, soh eh preciso vc criar um thread que fica capturando a posicao dele e realizando a tarefa que vc quiser.

entendeu?

mauricioadl eu já fiz isso, mas a minha intenção é pegar a posição do mouse por meio do evento de click e não por um determinado tempo que a thread vai rodar.

Então Robson, pra isso você vai ter que acessar, por exemplo, a parte do Windows que trata eventos de click do mouse, ou algo assim.
Eu nem tenho ideia por onde começar.

pesquise por JNA, agora capturar click do mouse é coisa de screenlogger que quer roubar senha de banco, não que seja o seu caso, mas não to vendo outra utilidade em fazer isso