2 votes

JTable + TableCellEditor : Changement de tampon sur les données

Mes questions portent sur les tableaux JTables modifiables (avec TableCellEditor).

Certains outils (comme SQLDeveloper) permettent à l'utilisateur de modifier plusieurs enregistrements, d'en créer de nouveaux ou de supprimer des enregistrements existants. La table montre les enregistrements modifiés, mais les modifications ne sont que locales, jusqu'à ce que l'utilisateur clique sur le bouton "save" (ou "commit" dans le cas de SQLDeveloper). L'utilisateur peut également revenir en arrière sur tous ses changements.

Quelle est la meilleure façon de mettre en œuvre ce comportement dans une application Swing avec une JTable ?

Je ne pense pas, qu'un outil comme SQLDeveloper crée une copie des enregistrements listés dans la table. Ma première idée était de créer un TableModel qui enveloppe un autre TableModel (ce qui me permet d'utiliser une implémentation arbitraire de TableModel) et de stocker uniquement les valeurs des cellules modifiées. Cela fonctionne bien, lorsque le nombre de lignes ne change pas. Mais comment gérer l'insertion ou la suppression de lignes ?

Merci d'avance pour tout conseil.

Markus

1voto

Howard Points 23487

Dans votre TableModel vous pouvez enregistrer un TableModelListener avec le parent TableModel et traiter les événements d'insertion ou de suppression en conséquence, également dans votre modèle.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X