Bonjour
J'ai un Frame contenant une foule de TextFields et TextAreas.
Certains d'entre eux ont un KeyListener, d'autres non.
Je voudrais récupérer globalement un KeyEvent (ex : KeyCode = VK_O pour
ouvrir un FileDialog).
Dois-je ajouter un KeyListener à TOUS mes composants ou existe-t-il une
manière plus globale de récupérer cet événement ?
Le container (Frame) peut-il préfiltrer l'événement, comme le fait
VisualBasic avec form.KeyPreview = true ?
Merci.
jfa
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
burma
Il existe plusieurs solution à ton problème.
- ajoute une listener à ta component racine et récupere l'event lors qu'il se presente (si tant est qu'il n'a pas déja été consumé)
- ajoute des actionMap et des inputMap à ta compnent racine (à mon avis c'est le plus élégant)
- recupère le glasspane de ta frame et intercepte l'event dessus.
Y a un trés bon article sur la gestion d'event dans swing sur le site de sun (cf. http://java.sun.com)
Voila. Manu
JFA wrote:
Bonjour J'ai un Frame contenant une foule de TextFields et TextAreas. Certains d'entre eux ont un KeyListener, d'autres non. Je voudrais récupérer globalement un KeyEvent (ex : KeyCode = VK_O pour ouvrir un FileDialog). Dois-je ajouter un KeyListener à TOUS mes composants ou existe-t-il une manière plus globale de récupérer cet événement ? Le container (Frame) peut-il préfiltrer l'événement, comme le fait VisualBasic avec form.KeyPreview = true ? Merci. jfa
Il existe plusieurs solution à ton problème.
- ajoute une listener à ta component racine et récupere l'event lors
qu'il se presente (si tant est qu'il n'a pas déja été consumé)
- ajoute des actionMap et des inputMap à ta compnent racine (à mon avis
c'est le plus élégant)
- recupère le glasspane de ta frame et intercepte l'event dessus.
Y a un trés bon article sur la gestion d'event dans swing sur le site de
sun (cf. http://java.sun.com)
Voila.
Manu
JFA wrote:
Bonjour
J'ai un Frame contenant une foule de TextFields et TextAreas.
Certains d'entre eux ont un KeyListener, d'autres non.
Je voudrais récupérer globalement un KeyEvent (ex : KeyCode = VK_O pour
ouvrir un FileDialog).
Dois-je ajouter un KeyListener à TOUS mes composants ou existe-t-il une
manière plus globale de récupérer cet événement ?
Le container (Frame) peut-il préfiltrer l'événement, comme le fait
VisualBasic avec form.KeyPreview = true ?
Merci.
jfa
- ajoute une listener à ta component racine et récupere l'event lors qu'il se presente (si tant est qu'il n'a pas déja été consumé)
- ajoute des actionMap et des inputMap à ta compnent racine (à mon avis c'est le plus élégant)
- recupère le glasspane de ta frame et intercepte l'event dessus.
Y a un trés bon article sur la gestion d'event dans swing sur le site de sun (cf. http://java.sun.com)
Voila. Manu
JFA wrote:
Bonjour J'ai un Frame contenant une foule de TextFields et TextAreas. Certains d'entre eux ont un KeyListener, d'autres non. Je voudrais récupérer globalement un KeyEvent (ex : KeyCode = VK_O pour ouvrir un FileDialog). Dois-je ajouter un KeyListener à TOUS mes composants ou existe-t-il une manière plus globale de récupérer cet événement ? Le container (Frame) peut-il préfiltrer l'événement, comme le fait VisualBasic avec form.KeyPreview = true ? Merci. jfa