[java Swing] inhiber un listener

Salut,

J’ai une jtable avec une liste de résultats et je voudrais effectuer une action lors de l’appui sur entrée avec récupération de la ligne sélectionnée. Le problème est que basiquement sur une jtable, la touche entrée fait passer à la ligne suivante. J’aimerais donc supprimer ce listener qui passe à la ligne suivante pour n’avoir que mon action.

Je ne veux pas bidouiller dans les packages autres que mes fichiers et pas de bidouilles du ligne - 1, on voit graphiquement que ça passe à la ligne suivante donc pas propre!

Merci par avance :jap:

Je sais que j’avais fait un truc dans le genre, mais n’ayant pas ma source à portée de clic, je vais te proposer quelque chose de mémoire :
InputEvent.consume().

Je vérifierais ça ce soir.

J’avais pensé à cette utilisation, mais le prob est que le listener sur la touche entrée qui bouge d’une ligne est implémentée avant mon listener, de ce fait il est appellé avant. Le consume ne sert donc à rien.

Marchi quand même :jap:

http://java.sun.com/j2se/1.5.0/docs/api/

Tu as : getKeyListeners

Tu peux éventuellement tenter d’englober l’ensemble des listeners.

Sinon, tu peux enregistrer Ctrl + Entrée.

hello,

bizarre, au Runtime je trouve rien dans les keyListeners, ça doit être ailleurs, peut-être dans les KeyStrokes:
http://java.sun.com/j2se/1.4.2/docs/api/ja…wing.KeyStroke)

Si c’est vraiment un Listener, tu peux le supprimer par removeListener… (j’ai toujours eu du mal avec la gestion des listener en Swing, pourtant ça fait un bout de temps que j’en fait)

Hum, faudrait que je teste demain pour le removeListener.

Je vais tout de même donner plus de détails, le problème n’est peut-être pas où je le pense.

J’ai une classe qui extends de keylistener, dans la méthode keypressed, si j’ai la touche entrée je fais un action.
Or, la touche entrée est auparavant captée par un autre listener dans une classe plus haute (jtable je pense) qui interfère dans mon action.

Essaye un coup de debugger ? dans Swing, ça devrait être fun :smiley:

Mouarf tu parles, t’as pas accès aux sources, ya que les jars :smiley:

De Swing? Tu n’as pas installé le jdk avec les sources?

C’est la première chose que je fais moi sur tout mes projets java : chercher les sources des programmes que j’utilise (car forcément mal documenté ou pire 1.4)…

D’autant qu’elles [celles du jdk] sont disponibles (et que Java est OpenSource aux dernières nouvelles)

Je bosse avec RAD 6 sur un pc où je n’ai aucun droit, faut prévenir les admins dès que tu veux installer une librairie (et il faut leur expliquer pourquoi), donc les sources de swing, je peux me brosser pour l’instant.

Si ce problème persiste, je l’installerai chez moi.

Ben tu peux faire un lien vers ton dossier à toi hein :slight_smile:

Et sinon, tu peux les chercher dans le dossier du jdk, ça doit y être.

Non, je n’ai jamais eu les sources livrées avec le J2se

wait… ANNA BOT gourré de topic, la suite sur le topic a flood. :ane:

apparemment ce que cherche notre ami ce sont les keystroke.
pour les obtenir : KeyStroke[] list = table.getRegisteredKeyStrokes();

edit :
pour les supprimer : table.getActionMap().remove(Object Key);

Ok jmg, je vais tester ça :jap: