7
votes

Pourquoi CancelCelediting () n'est-ce pas appelé lorsque vous appuyez sur Echap lors de la modification d'une cellule JTAble?

J'ai une JTABLE modifiable et j'ai défini un élément par défaut comme: xxx

Toutefois, lorsque vous appuyez sur Echacler lors de la modification d'une cellule dans cette colonne, bien que le mode d'édition soit terminé, cette méthode est non appelé. Des idées pourquoi? Est-ce que je fais quelque chose de mal? Y a-t-il un moyen de gérer cela (autre que d'ajouter manuellement un frappeur de frappe)?


0 commentaires

3 Réponses :


11
votes

La manière officielle: vous pouvez enregistrer un CelleDitorListener: abstractcelleditor.addcelleditorlistener (...). Si l'édition est annulée, l'éditionCantang (ChangeEvent e) devrait être appelé. en raison d'un bug solaire http: //bugs.sun .com / bugdatabase / vue_bug.do? bug_id = 6788481 , édition de l'édition n'est pas appelé : (

Comme solution de contournement, vous pouvez enregistrer votre propre action pour la clé d'échappement et la gérer vous-même. Mais cela ne fonctionnera pas pour redimensionner des événements.

Une autre solution (rapide et sale ;-)): écrasez la méthode jtalable.remploveeditor () et insérez votre code après le Super Call.


0 commentaires

0
votes

J'ai aussi eu ce problème. J'ai écrit une autre solution impliquant ActionListener et FocusListener. Ceci est-ce: xxx

ici vous peut trouver une petite solution plus complète.


0 commentaires

0
votes

Un autre moyen Correction Ce bug : xxx


0 commentaires