Bonjour,
Ces sacrés JTable vont me faire devenir fou, j'ai un problème pour "remonter" la détection d'une modification d'une cellule à ma JTable et je n'arrive pas trouver de solution correcte, je m'explique :
- j'ai une interface graphique avec une JTable.
- j'ai un TableModele qui étend AbstractTableModel.
- J'ai des objets qui sont passés sous forme de vecteur à ce TableModele, et celui-ci s'occupe de renvoyer les valeurs à afficher via getValueAt(int,int)...
Jusque la tout va bien...
Maintenant, lorsque je fais une modification sur l'une des cellules, je voudrais noter que mon objet est à mettre à jour, seulement les solutions que j'ai trouvé ne me conviennent pas vraiment :
- je peux mettre un booléen dans l'objet que je passe à true lorsque je modifie une cellule (et donc une proporiétés de cette objet) via la méthode setValueAt(), mais bon mes objets représente ma base et je ne voudrais pas mettre d'attributs "parasite" et je pense que ce n'est pas "propre" de faire comme cela.
- je peux mettre un vecteur d'objet (ex objToUpdate) correspondant à tous mes objets à mettre à jour dans ma classe d'interface. De cette façon je retrouver ceux qui ont été modifiés dans ma liste.
Cependant, pour ajouter les objets au vecteur, je n'ai pas trouver d'autres solutions que de le faire à partir du TableModel, et donc mon TableModel doit connaître ce vecteur la (objToUpdate), et donc soit je met ma classe TableModel dans la classe d'interface afin de pouvoir accéder à "objToUpdate", soit je rajoute un paramètre à mon modèle et passe objToUpdate à l'instanciation de TableModele...
pas terrible...
J'ai pas d'autres solutions à l'heure actuelle sachant que je ne veux pas mettre à jour "en temps réel" mais que je veux faire d'abord toutes les actions et déclencher la sauvegarde au clic sur un bouton "Enregistrer"...
Avez vous une idée ?
Merci d'avance.
Partager