Reconhecimento de teclas (teclado) e de botões (joystick)

Gostaria de fazer um programa que, reconhecesse, mesmo rodando em segundo plano, as teclas e botões do joystick que estou apertando.

Ex.: Eu aperto em um botao do joystick, aparece no programa o botao que eu apertei, eu digito uma letra, aparece a tecla que eu apertei/segurei, mais ou menos como um keylogger, porém, não quero gravar as ações do usuário, só quero mostrar o que ele está fazendo…

Por exemplo, para digitar o A ele segurou o SHIFT e a letra a, então o sistema seria assim: há um teclado na tela, e conforme eu apertar/segurar a tecla, a cor da tecla no teclado da tela muda… mostrando que está pressionado.

E tem mais um problema… o programa tem que rodar em segundo plano… ex.: se eu estiver no bloco de notas digitando, e restaurar a janela, de forma que eu veja o programa e o bloco de notas, tem que aparecer as teclas que estou digitando e/ou botões que esteja segurando.

Precisarei disto em um jogo de estratégia.

Alguém já desenvolveu algo parecido ?
Alguém tem idéia de como fazer ?

Desde já, grato pela ajuda.

Olha só,

Por coincidência, estou com um problema parecido…

Pra fazer isso, com certeza vc precisará usar JNI.

Tem alguns tópicos por aí que podem te ajudar nesta tarefa…

Vou linkar alguns… qq coisa, podemos tantar resolver isso juntos, uma vez que os problemas são bem parecidos.

Handling events from native objects in Java code

Neste tópico tem alguma coisa
http://www.guj.com.br/posts/list/79164.java#422206

Aqui também:
http://www.javafree.org/javabb/viewtopic.jbb?t=853636

Vai lá… se tiver alguma luz… poste aqui!