problème de TableModelListener [swing] - Java - Programmation
Marsh Posté le 08-11-2005 à 08:56:48
As tu bien enregistré ton listener sur ta table ?
Marsh Posté le 08-11-2005 à 14:00:22
dans le constructeur, il y a " addTableModelListener(this); "
cela ne suffit pas ?
Marsh Posté le 08-11-2005 à 16:47:35
ca, c'est louche:
Code :
|
Marsh Posté le 08-11-2005 à 17:43:21
pourquoi est-ce louche ?
sans ça, la JTable qui utilise le modele n'est pas prévenue de l'insertion d'une nouvelle ligne dans le modele. nan ?
en fait je débute en swing.
Marsh Posté le 10-11-2005 à 23:52:57
psychotek a écrit : pourquoi est-ce louche ? |
Salut,
ce qui est surtout louche, c'est que tu appelle avec getRowCount() en parametre or:
Citation : public void fireTableRowsInserted(int firstRow, int lastRow) |
et les index des lignes de ta table vont de 0 à getRowCount() -1.
Je pense donc que ton modèle n'est jamais prévenu puisque cette ligne n'existe pas.
Tu devrais donc essayer de faire tes appels ainsi:
Code :
|
Si ça ne solutionne pas le problème, moi je ferais plutot comme ca:
Utiliser un DefaultTableModel à la place d'un AbstractTableModel qui n'est pas une classe abstraite: donc tu n'as pas besoin de gérer les notifications de changement (fireTableRows****), c'est déja fait.
Citation : mon but premier est d'attrapper une modification faite dans la table par l'utilisateur, lors de l'exécution du programme |
Ensuite, la JTable répercute automatiquement les changements sur le DefaultTableModel donc si l'utilisateur change une valeur, ajoute des lignes, etc. le modèle est automatiquement mis à jour. Tu n'as donc plus qu'à interroger le modèle suite à un changement:
Code :
|
Marsh Posté le 11-11-2005 à 17:30:33
merci pour ta réponse. je vais essayer ce que tu conseilles, dès que le cvs de sourceforge sera reparti (parce que là j'ai un timeout, c'est pénible)
Marsh Posté le 12-11-2005 à 11:30:14
booon, super, finalement mon AtmTableModel dérive de DefaultTableModel, et effectivement ça marche, tout est bien géré. merci à toi.
Marsh Posté le 07-11-2005 à 19:49:48
Bonjour à tous
je cherche à implémenter une JTable, écoutée par mon propre TableModelListener. Pour cela j'ai une classe AtmTableModel, qui hérite de AbstractTableModel, et qui implémente TableModelListener.
mais plutôt qu'un long discours, voici le code :
mon but premier est d'attrapper une modification faite dans la table par l'utilisateur, lors de l'exécution du programme.
MAIS VOILA, ça ne marche pas. je pensais pourtant avoir tout bien fait comme il faut, comme dans le how to de sun.
quelqu'un sait d'où vient le problème ?
merci