Bonjour,
J'ai créé une interface dans une JFrame et je souhaiterais placer sur cette JFrame un KeyListener pour savoir quelles touches sont pressée.
Le problème c'est que mon application comporte plusieurs composant dont un browser web intégré. Lorsque le focus se retrouve sur le browser web, le Listener ne fonctionne plus que je le place sur ma JFrame ou sur le composant web.
Je voudrais donc savoir si il existe une méthode pour déclencher un évènement lorsque l'on presse une touche même si il n'y a pas le focus sur l'élément sur lequel est placé le Listener.
En cherchant j'ai trouvé ce bout de code qui à l'air de fonctionner avec le touche F1 mais je ne le comprend pas et je ne sais pas comment modifier la touche ou savoir si il est possible de le modifier pour qu'il fonctionne avec n'importe quelle touche.
Si il n'est pas possible de le rendre générique et qu'il faut absolument spécifier une touche, j'aimerai que ce soit la touche "Echap". Je suppose qu'il faut modifier le "F1", mais comment se nomme la touche en java ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 frame.getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke("F1"), "action F1"); frame.getRootPane().getActionMap().put("action F1", new AbstractAction() { public void actionPerformed(ActionEvent ae) { System.out.println("touche F1 pressée"); } });
Ou peut être existe t il une meilleure méthode ?
Partager