L'écouteur Ne capte pas la touche Tabulation

L'écouteur Ne capte pas la touche Tabulation - Java - Programmation

Marsh Posté le 27-10-2005 à 14:06:15    

Bonjour tout le monde,
j'ai créé une fenêtre sur laquelle j'ai mis un KeyListener. Toutes les touches fonctionnent (produisent un événement) sauf la touche tabulation, et cela, que ce soit avec un KeyPressed, un KeyTyped ou un KeyReleased. Si quelqu'un à une idée, je suis preneur :bounce:  ...

Reply

Marsh Posté le 27-10-2005 à 14:06:15   

Reply

Marsh Posté le 27-10-2005 à 20:25:30    

tu peux passer ton bout de code

Reply

Marsh Posté le 28-10-2005 à 08:25:14    

ecouteurClavier = new KeyListener()
      {
         
  public void keyTyped(KeyEvent e3)
  {
   System.out.println(e3.getKeyCode());
  }
   
   
  public void keyReleased(KeyEvent e2)
  {
   int touch = e2.getKeyCode();
   switch(touch)
   {
    case 9 :
   System.out.println("TABULATION" );
     break;
    case 16 :  
     MAJTEMP = false;
     break;
    case 17 :  
     ALTCTRL = false;
     break;
    case 18 :  
     ALTGR = false;
     break;
    case 27 :
    System.out.println("ECHAP" );
     break;
    default :
    System.out.println("default" );
   }
               
  }
             
   
   
  // methode permettant de récupérer la touche pressée au clavier    
  public void keyPressed(KeyEvent e)
  {
     
    ev = e;
    touch = e.getKeyCode();
 
   switch(touch)
   {
     
    case 8 :
   System.out.println("RETOUR ARRIERE" );
     supprimerSaisie(1);
     label.repaint();
     break;
    case 9 :
   System.out.println("TABULATION" );
     break;
    default :
   System.out.println("default keypressed" );
     
   }
  }  
   
  };
 
this.addKeyListener(ecouteurClavier);

Reply

Marsh Posté le 28-10-2005 à 08:52:58    

Essai avec :
ev = e;  
if(e.getKeyCode() == KeyEvent.VK_TAB){
System.out.println("lol tab" );
}


---------------
"Placez votre main sur un poele une minute et ça vous semble durer une heure. Asseyez vous aupres d'une jolie fille une heure et ça vous semble durer une minute. C'est ça la relativite." (Albert Einstein / 1879-1955)
Reply

Marsh Posté le 28-10-2005 à 09:51:33    

ça ne marche toujours pas

Reply

Marsh Posté le 28-10-2005 à 09:52:57    

en meme temps, la touche tabulation est utilisée par swing pour faire changer le focus des composants, je suis pas sur qu'on puisse l'utiliser si simplement [:pingouino]
 
(ceci n'est qu'une supposition hein, sinon j'en sais rien [:dawa] )

Reply

Marsh Posté le 28-10-2005 à 10:30:24    

je ne pense pas dans la mesure ou je n'ai sur ma JFrame qu'un label sur lequel je dessine et un MenuBar. J'ai enlevé le MenuBar par curiosité mais ça n'a rien changé.
Merci quand même.

Reply

Marsh Posté le 28-10-2005 à 10:33:42    

c'est peut être ton systeme qui recuperer cet event en premier.


---------------
"Placez votre main sur un poele une minute et ça vous semble durer une heure. Asseyez vous aupres d'une jolie fille une heure et ça vous semble durer une minute. C'est ça la relativite." (Albert Einstein / 1879-1955)
Reply

Marsh Posté le 28-10-2005 à 10:38:47    

est_ce qu'il y a un moyen de vérifier cela

Reply

Marsh Posté le 28-10-2005 à 10:42:49    

saha54 a écrit :

je ne pense pas dans la mesure ou je n'ai sur ma JFrame qu'un label sur lequel je dessine et un MenuBar. J'ai enlevé le MenuBar par curiosité mais ça n'a rien changé.
Merci quand même.


et alors ? [:pingouino]
que t'aies un label uniquement ou plein d'autres trucs, ca n'empeche pas qu'a mon avis, l'event sur la touche tabulation est capté par swing (encore j'en suis pas sur, mais je penche fortement vers cette explication)

Reply

Marsh Posté le 28-10-2005 à 10:42:49   

Reply

Marsh Posté le 28-10-2005 à 10:44:50    

premier lien sur google: http://www.google.fr/search?q=swin [...] unofficial
 
et on peut y lire:  
 

Citation :


Version note: This page reflects the focus API introduced in released 1.4. As of that release, the focus subsystem consumes focus traversal keys, such as Tab and Shift Tab. If you need to prevent the focus traversal keys from being consumed, you can call
 
component.setFocusTraversalKeysEnabled(false)
 
on the component that is firing the key events. Your program must then handle focus traversal on its own. Alternatively, you can use a KeyEventDispatcher to pre-listen to all key events. The focus page (in the Creating a GUI with JFC/Swing trail) has detailed information on the focus subsystem.


 
faut plus apprendre à chercher un peu, ca m'a pris genre 10 secondes [:pingouino]

Reply

Marsh Posté le 28-10-2005 à 11:06:09    

merci, je vais voir cette solution. Je n'avais pour ma part pas cherché dans ce sens.

Reply

Marsh Posté le 28-10-2005 à 11:12:08    

c'était pas faute de t'avoir prévenu, mais tu m'a sorti un glorieux "je ne pense pas" en bon spécialiste de swing que tu es [:pingouino]
 
m'enfin bon, problème règlé, c'est le plus important [:pingouino]

Reply

Marsh Posté le 28-10-2005 à 11:13:28    

c'était bien ça le problème. Merci et bonne journée.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed