SOS internautes
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Derniers sujets
» Emulateur CD-I : CD-I Emulator
Utiliser le clavier uniquement dans un JPanel EmptyLun 19 Déc - 11:24 par bigblaireau

» Présentation
Utiliser le clavier uniquement dans un JPanel EmptyLun 19 Déc - 11:10 par bigblaireau

» probleme incredimail
Utiliser le clavier uniquement dans un JPanel EmptyMar 22 Mar - 19:06 par vanille57540

» (supprimé)
Utiliser le clavier uniquement dans un JPanel EmptyVen 18 Mar - 20:06 par louis1806

» présentation
Utiliser le clavier uniquement dans un JPanel EmptyVen 18 Mar - 10:47 par louis1806






Le Deal du moment : -39%
Ordinateur portable ASUS Chromebook Vibe CX34 Flip
Voir le deal
399 €

Utiliser le clavier uniquement dans un JPanel

Aller en bas

Utiliser le clavier uniquement dans un JPanel Empty Utiliser le clavier uniquement dans un JPanel

Message  Zepalkia 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 Utiliser le clavier uniquement dans un JPanel 575306 ) 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.
avatar
Zepalkia
Admin
Admin

Avertissement : aucun avertissement
Messages : 882
Date d'inscription : 23/12/2009
Age : 31

https://sos-internautes.forumactif.com

Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

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