Listener system

aurelbobol6
Listener system

Bonjour

Voila mon petit problème:
Je sais écouter les événements du clavier, mais uniquement lorsque je suis sur la fenêtre du programme.

Mais mon programme doit pouvoir récupérer les évènements du clavier à tout moment, même quand il est exécuté en arrière plan.
Ce serait plus un listener lié à l'OS qu'à la JFrame?
Ce que je voudrais savoir c'est comment écouter ces évènements là?

Merci d'avance,

Aurel

fredericmazue

bonjour,

Sous quel OS ?

Le problème de fond (il me semble) est que le système ne mettra pas un événement dans la queue d'événement d'une application si elle n'est pas concernée. Je veux dire par exemple que si tu cliques sur le bureau de Windows, ça ne concerne pas ton appli Java. Windows va transmettre l'événement au bureau, et pas à ton appli.

Pour faire ce que tu veux, je ne connais qu'un seul moyen. Sous windows ça consiste à écrire un hook (clavier puisque tu veux les touches du clavier). Ca tu vas pas pouvoir le faire en Java. Seulement en C ou en C++ Ou même en pascal, bref, en code natif au final. Sur le fond un hook c'est pas difficile, mais là la difficulté supplémentaire est que le hook devra transmettre les évenements à la JVM. faisable je pense, mais torturé.

Sous X-Windows (Linux) je ne sais plus comment on pourrait faire :oops:
Le principe du hook doit avoir son équivalent mais je ne me souviens plus

En espérant t'avoir quand même aidé un petit peu.