2009-01-26 4 views
0

Je travaille avec Java. J'ai créé un JTable, et j'ai rendu les cellules de la table modifiables. Mon problème est que lorsque je sélectionne une cellule et y écris une valeur, puis que je clique sur Entrée, la valeur que j'ai tapée ne reste pas dans la cellule où je l'ai tapée, mais saute dans une autre cellule quelque part dans la table. La valeur reste la même, mais sur elle la cellule, que j'ai tapée.JTable Valeurs "sauter" dans une autre cellule après avoir appuyé sur Entrée

Je représente les cellules de la table en tant qu'instances de la classe Cell.

Quelque chose se produit par défaut, et je ne sais pas quoi changer pour que la valeur de la cellule reste dans la cellule, bien que j'ai parcouru quelques documents en ligne sur JTables. Savez-vous ce que le problème pourrait être, et où devrais-je regarder dans le code afin de le réparer? Merci d'avance.

Répondre

2

Il semble que vos index de modèle soient confondus quelque part.

Si vous utilisez un RowSorter, JTable.getSelectedRow renverra l'index de la ligne en cours de visualisation, pas la ligne du modèle. Vous pouvez utiliser RowSorter.convertRowIndexToModel() pour obtenir l'index correct.

Vérifiez à nouveau votre méthode JTableModel.setValueAt() pour vous assurer que les index de cellule sont ceux que vous avez modifiés et que vous stockez la nouvelle valeur au bon endroit.

Questions connexes