2010-10-27 24 views
0

Dans mon JTable j'ai un certain nombre d'actions qui peuvent accéder via le menu contextuel ou en sélectionnant le raccourci configuré. Sélection de l'action de la popup en utilisant la souris ou le clavier est très bien, et je peux utiliser les touches du curseur pour passer à un champ à côté de la sélection d'origine sans problème. Toutefois, si j'utilise la touche de raccourci à la place, l'action est correcte, mais je ne peux pas quitter les champs sélectionnés en utilisant les touches du curseur, car pour une raison quelconque, le focus est maintenant sur un composant en dehors de la JTable.JTable cellule perd focus après l'exécution d'une action sur les cellules sélectionnées si utiliser raccourci clavier et désactiver temporairement le JTable

EDIT: Lorsque je lance la tâche, je change le curseur et désactive la JTable, lorsque j'achève la tâche, je la réinitialise et la réinitialise. Si je supprime le code de désactivation cela fonctionne, mais cela permet alors à l'utilisateur d'apporter des modifications à la table dont je ne veux pas, et je ne peux pas comprendre pourquoi cela ne fonctionne que lorsque j'utilise un raccourci clavier.

+1

Déposez votre SSCCE (http://sscce.org) montrant le problème. – camickr

+0

Si seulement c'était si facile, j'ai maintenant progressé Je me suis rendu compte que quand je commence une tâche, je désactive le JTable pour empêcher l'utilisateur de faire des mods, puis je le résous après la fin de la tâche. seulement des pauses lors de l'utilisation de keybaord –

Répondre

0

Correction du problème, après la renabling jtable que je devais appeler requestFocusInWindow()

+0

Et pas où dans votre déclaration de problème d'origine avez-vous indiqué où activer/désactiver la table, donc nous n'avions qu'une partie de l'information requise pour résoudre le problème. C'est pourquoi un SSCCE devrait être posté avec chaque question. Parce que tant que vous n'avez pas résolu le problème, vous ne savez pas quelle information est ou n'est pas pertinente. Créer un SSCCE vous oblige à regarder chaque étape du code pour voir si cela cause le problème ou non. – camickr

+0

camickr: Extraction d'un SSCCE peut être beaucoup d'effort, bien sûr créer un SSCCE fournirait la réponse plusieurs fois et ne nécessiterait pas de publication sur ce forum, mais à l'époque je ne pouvais pas penser par où commencer, la table de désactivation code a été enterré et j'espérais que quelqu'un pourrait avoir une idée de l'endroit où commencer –