OVH Cloud OVH Cloud

Vider le cache de l'entrée standard (clavier)

4 réponses
Avatar
Thibaut Desmarest
Bonjour à tous,

Mon problème est le suivant :

Si dans une fenêtre j'utilise la combinaison de touches CTRL + Tab pour
passer le focus au composant suivant, et si le composant suivant est un
dérivé de JTextComponent, alors il ne prendra pas en compte la première
lettre (ou chiffre) qui sera entrée au clavier, car apparemment,
l'application a gardé en buffer le code de la touche CTRL, et CTRL +
caractère ca n'écrit rien.

Savez vous comment "vider" le buffer du clavier ?

Merci d'avance,


Thibaut

4 réponses

Avatar
Vincent Cantin
Bonjour à tous,

Mon problème est le suivant :

Si dans une fenêtre j'utilise la combinaison de touches CTRL + Tab pour
passer le focus au composant suivant, et si le composant suivant est un
dérivé de JTextComponent, alors il ne prendra pas en compte la première
lettre (ou chiffre) qui sera entrée au clavier, car apparemment,
l'application a gardé en buffer le code de la touche CTRL, et CTRL +
caractère ca n'écrit rien.

Savez vous comment "vider" le buffer du clavier ?

Merci d'avance,


Thibaut


Je n'ai pas de solution a ton probleme, mais je peux te conseiller
d'utiliser seulement Tab pour aller au composant suivant, ca marchera
peut-etre mieux.

Avatar
Thibaut Desmarest
Vincent Cantin wrote:

Bonjour à tous,

Mon problème est le suivant :

Si dans une fenêtre j'utilise la combinaison de touches CTRL + Tab pour
passer le focus au composant suivant, et si le composant suivant est un
dérivé de JTextComponent, alors il ne prendra pas en compte la première
lettre (ou chiffre) qui sera entrée au clavier, car apparemment,
l'application a gardé en buffer le code de la touche CTRL, et CTRL +
caractère ca n'écrit rien.

Savez vous comment "vider" le buffer du clavier ?

Merci d'avance,


Thibaut



Je n'ai pas de solution a ton probleme, mais je peux te conseiller
d'utiliser seulement Tab pour aller au composant suivant, ca marchera
peut-etre mieux.


Bien essayé, mais si c'était aussi simple ce serait pas drôle...
Non, le truc c'est que pour t'échapper d'un JTextArea (par exemple) ben
Tab tout court ça marche pas, il faut faire CTRL + Tab... Donc le
problème est bel et bien là.
Par contre j'ai refait ma propre touche de transfert de focus
intelligent, Entrée, SHIFT + Entrée, CTRL + Entrée etc... Et là ça
marche bien, le seul problème c'est ...

Si je veux faire CTRL + SHIFT + Entrée ben là ça passe pas, je ne reçois
même pas d'évènement... :-(


Avatar
Vincent Cantin
Vincent Cantin wrote:

Bonjour à tous,

Mon problème est le suivant :

Si dans une fenêtre j'utilise la combinaison de touches CTRL + Tab pour
passer le focus au composant suivant, et si le composant suivant est un
dérivé de JTextComponent, alors il ne prendra pas en compte la première
lettre (ou chiffre) qui sera entrée au clavier, car apparemment,
l'application a gardé en buffer le code de la touche CTRL, et CTRL +
caractère ca n'écrit rien.

Savez vous comment "vider" le buffer du clavier ?

Merci d'avance,


Thibaut



Je n'ai pas de solution a ton probleme, mais je peux te conseiller
d'utiliser seulement Tab pour aller au composant suivant, ca marchera
peut-etre mieux.


Bien essayé, mais si c'était aussi simple ce serait pas drôle...
Non, le truc c'est que pour t'échapper d'un JTextArea (par exemple) ben
Tab tout court ça marche pas, il faut faire CTRL + Tab... Donc le
problème est bel et bien là.
Par contre j'ai refait ma propre touche de transfert de focus
intelligent, Entrée, SHIFT + Entrée, CTRL + Entrée etc... Et là ça
marche bien, le seul problème c'est ...

Si je veux faire CTRL + SHIFT + Entrée ben là ça passe pas, je ne reçois
même pas d'évènement... :-(


Quelle idee d'aller faire 3 touches pour passer a composant suivant :p

Sinon, je te recommende de suivre la trace des evenements a travers le code
du jdk, tu en apprendras davantage, et tu vas peux-etre trouve une solution
pour etre le maitre des evenements clavier.



Avatar
Thibaut Desmarest
Vincent Cantin wrote:

Quelle idee d'aller faire 3 touches pour passer a composant suivant :p


Bah désolé mais je ne fais que copier le comportement standard d'une
application classique... une touche x pour passer le focus, un appui sur
CTRL pour pouvoir passer le focus quand on est dan sun champ spécial
(JTextArea par exemple qui prend les entrée ou les Tab comme un caractère).
Et le SHIFT qui permet de passer le focus en arrière et non en avant...

Sinon, je te recommende de suivre la trace des evenements a travers le code
du jdk, tu en apprendras davantage, et tu vas peux-etre trouve une solution
pour etre le maitre des evenements clavier.


J'ai trouvé d'où venait le problème !
J'avais mis le code de mon KeyListener dans un keyTyped alors qu'il
fallait le mettre dans un keyPressed...
Maintenant ça marche nickel...
Enfin sauf avec la tabulation j'ai toujours le problème du premier
caractère qui se fait bouffer mais comme c'est pas moi qui l'ai codé ça...