Derniers sujets






Utiliser le clavier uniquement dans un JPanel

Voir le sujet précédent Voir le sujet suivant Aller en bas

Utiliser le clavier uniquement dans un JPanel

Message  Zepalkia le Sam 21 Jan - 13:49

Un des problèmes lié à l'utilisation d'une structure en JFrame-JPanel-JLabel vient du fait que, par défaut, il est impossible d'utiliser le clavier dans un seul panel bien précis, il est en effet uniquement possible d’implémenter un KeyListener dans un JFrame ce qui peut poser quelques problèmes ou tout simplement ne pas vous arranger.

Heureusement pour vous, il existe bel et bien une méthode permettant de "donner la possibilité" d'utiliser un KeyListener uniquement dans un JPanel, il s'agit en fait de le rendre "focusable", et cela se fait en deux toutes petites lignes de codes dans votre JFrame, plutôt pratique mais pas forcément facile à trouver, voici cette méthode.

Supposons que votre JPanel se nomme "panneau", au moment de le définir dans votre JFrame avant de l'ajouter à votre container, copiez les lignes ci-dessous :
Code:
         
                    panneau.setFocusable( true );
                    panneau.requestFocus();


Mettez ensuite votre panneau dans votre container (via contentPane.add( panneau ); pour rappel ) et mettez un KeyListener standard dans votre JPanel, et là.. miracle, ça marche.
En fait c'est très simple à expliquer, de base donc seul le JFrame est "visé" par les autorisations d'utilisation du clavier, il faut ainsi "transférer" en quelque sorte ces autorisations.
Ainsi, la première ligne rend votre JPanel "focusable" et la seconde demande de lui donner un "focus"; votre JPanel se trouve ainsi visé en priorité et c'est chez lui que votre application ira chercher les actions définies par la méthode de reconnaissance du clavier.

_________________







Zepalkia
Admin
Admin

Avertissement : aucun avertissement
Messages : 883
Date d'inscription : 23/12/2009
Age : 24

http://sos-internautes.forumactif.com

Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum