[résolu] désactiver l'écoute de certains keyEvent d'une zone de texte

désactiver l'écoute de certains keyEvent d'une zone de texte [résolu] - Java - Programmation

Marsh Posté le 28-01-2003 à 00:07:08    

Salut tout le monde,
est-il possible qu'un JTextPane (ou un autre JTextComponent) ne réagisse pas à certaines touches? Par exemple désactiver l'écoute de la touche "enter" ou "tab".
 
Merci d'avance


Message édité par deltaden le 30-01-2003 à 18:39:30
Reply

Marsh Posté le 28-01-2003 à 00:07:08   

Reply

Marsh Posté le 28-01-2003 à 08:34:58    

bin oui.
 
Dans la méthode qui gère l'event et pour le composant en question tu regardes quel keyevent c'est et si c'est KeyEvent.TAB ou KeyEvent.ENTER (a voir dans la javadoc de keyevent), tu fais rien :D


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 28-01-2003 à 09:25:07    

je pense qu'il veur dire "désactiver la gestion l'évenement habituelle" genre tab => focus sur l'élément suivant

Reply

Marsh Posté le 28-01-2003 à 10:04:29    

benou a écrit :

je pense qu'il veur dire "désactiver la gestion l'évenement habituelle" genre tab => focus sur l'élément suivant


 
ah bon? Elle est vraiment posée bizarrement sa question alors ...


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 28-01-2003 à 11:40:26    

Merci DarkLord, mais en effet, benou a raison, c'est exactement ce qu'il décrit que je veux faire, déso de pas avoir été plus clair.

Reply

Marsh Posté le 28-01-2003 à 12:31:15    

deltaden a écrit :

Merci DarkLord, mais en effet, benou a raison, c'est exactement ce qu'il décrit que je veux faire, déso de pas avoir été plus clair.


 
pas grave ;)
peut etre en ajoutant le listener sur la frame ... C'est intéressant comme question


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 28-01-2003 à 12:58:53    

En fait, je dois faire un tableur, avec la touche tab et enter qui changent de cellule.

Reply

Marsh Posté le 29-01-2003 à 22:19:45    

Ok, il y a quelqu'un qui connaissait la réponse sur le forum de Sun.
En fait, j'ai appris un truc extrèmement intéressant, c'est qu'un component envoie un event à ses listeners avant de le traiter lui même.
 
C'est à dire qu'un mettant un keylistener sur tous mes JTextPane, celui qui a le focus détecte l'appui sur la touche "enter" et envoit un KeyEvent AVANT de rajouter le "enter" dans le texte.
Mon KeyListener effectue alors la méthode consume() sur l'objet KeyEvent et la zone de texte ne traite alors pas le KeyEvent => pas de rajout d'un retour à la ligne.
 
Si vous comprenez pas mon explication tordue, voici l'API de InputEvent:
 

Code :
  1. public abstract class InputEvent
  2. extends ComponentEvent
  3. The root event class for all component-level input events. Input events are delivered to listeners before they are processed normally by the source where they originated. This allows listeners and component subclasses to "consume" the event so that the source will not process them in their default manner. For example, consuming mousePressed events on a Button component will prevent the Button from being activated.



Message édité par deltaden le 30-01-2003 à 18:54:59

---------------
"La Terre est le berceau de l'humanité, mais on ne passe pas toute sa vie au berceau." - Konstantine Tsiolkovski
Reply

Marsh Posté le 30-01-2003 à 09:42:01    

moi j'ai compris et c'est intéressant en effet.
 
merci :jap:


Message édité par benou le 30-01-2003 à 09:42:11
Reply

Marsh Posté le 30-01-2003 à 14:48:41    

deltaden a écrit :

Salut tout le monde,
est-il possible qu'un JTextPane (ou un autre JTextComponent) ne réagisse pas à certaines touches? Par exemple désactiver l'écoute de la touche "enter" ou "tab".
 
Merci d'avance


je crois qu il faut faire un composant qui herite de ton composant:
 

Code :
  1. import javax.swing.*;
  2. public class MyJTextArea extends JTextArea{
  3. public MyJTextArea(int a,int b){
  4. super(a,b) ;
  5. }
  6. public boolean isManagingFocus()
  7. { return false;
  8. }
  9. }

Reply

Marsh Posté le 30-01-2003 à 14:48:41   

Reply

Marsh Posté le 30-01-2003 à 18:38:54    

désolé veryfree mais je vois pas comment ce que tu explique m'aide pour mon problème.
 
Enfin, ce n'est pas grave, j'ai trouvé la solution (voir mon post précédent)


---------------
"La Terre est le berceau de l'humanité, mais on ne passe pas toute sa vie au berceau." - Konstantine Tsiolkovski
Reply

Marsh Posté le 30-01-2003 à 22:22:29    

interessant le coup du consume, connaissait pas. anabesoin demain je crois:)


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 01-02-2003 à 21:00:47    

--greg-- a écrit :

interessant le coup du consume, connaissait pas


 
tu connaissais pas? [:dawa]


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 07-02-2003 à 13:37:52    

deltaden a écrit :

désolé veryfree mais je vois pas comment ce que tu explique m'aide pour mon problème.
 
Enfin, ce n'est pas grave, j'ai trouvé la solution (voir mon post précédent)


 
en fait ca permet de désactivé la touche tab en passant le focus a l element suivant...
jcroyait que c ce que tu voulait faire

Reply

Sujets relatifs:

Leave a Replay

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