JTable : problème de threads lors du raffraichissement
2 réponses
Kupee
Salut, j'ai une JTable pour laquelle j'ai écrit un TableModel
spécifique, en gros qui met ses données dans une Stack avec des méthodes
pop, push, getRowCount et getValue toutes synchronisées.
J'ai un certain nombres de threads qui viennent piocher dans cette table
et d'autres qui viennent déposer des éléments.
Et le problème est que parfois lors du raffraichissement a l'écran le
thread Swing doit faire un getRowCount puis parcourir toutes les cases
avec getValueAt. Sauf que si un de mes threads prend un objet dans ma
table, lorsque le thread de Swing reprend la main, il continue sa boucle
et du fait qu'il lui manque une ligne la Stack va renvoyer une exception
ArrayOutOfBounds.
Du moins c'est l'idée que j'ai de ce qui se passe. Je cherches donc une
solution car je me doute bien qu'il en existe, merci
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
TestMan
Et le debugger il dit quoi ?
-SLK
"Kupee" a écrit dans le message de news:3f1a5c47$0$1324$
Salut, j'ai une JTable pour laquelle j'ai écrit un TableModel spécifique, en gros qui met ses données dans une Stack avec des méthodes pop, push, getRowCount et getValue toutes synchronisées. J'ai un certain nombres de threads qui viennent piocher dans cette table et d'autres qui viennent déposer des éléments. Et le problème est que parfois lors du raffraichissement a l'écran le thread Swing doit faire un getRowCount puis parcourir toutes les cases avec getValueAt. Sauf que si un de mes threads prend un objet dans ma table, lorsque le thread de Swing reprend la main, il continue sa boucle et du fait qu'il lui manque une ligne la Stack va renvoyer une exception ArrayOutOfBounds. Du moins c'est l'idée que j'ai de ce qui se passe. Je cherches donc une solution car je me doute bien qu'il en existe, merci
Et le debugger il dit quoi ?
-SLK
"Kupee" <abc@hotmail.com> a écrit dans le message de
news:3f1a5c47$0$1324$626a54ce@news.free.fr...
Salut, j'ai une JTable pour laquelle j'ai écrit un TableModel
spécifique, en gros qui met ses données dans une Stack avec des méthodes
pop, push, getRowCount et getValue toutes synchronisées.
J'ai un certain nombres de threads qui viennent piocher dans cette table
et d'autres qui viennent déposer des éléments.
Et le problème est que parfois lors du raffraichissement a l'écran le
thread Swing doit faire un getRowCount puis parcourir toutes les cases
avec getValueAt. Sauf que si un de mes threads prend un objet dans ma
table, lorsque le thread de Swing reprend la main, il continue sa boucle
et du fait qu'il lui manque une ligne la Stack va renvoyer une exception
ArrayOutOfBounds.
Du moins c'est l'idée que j'ai de ce qui se passe. Je cherches donc une
solution car je me doute bien qu'il en existe, merci
"Kupee" a écrit dans le message de news:3f1a5c47$0$1324$
Salut, j'ai une JTable pour laquelle j'ai écrit un TableModel spécifique, en gros qui met ses données dans une Stack avec des méthodes pop, push, getRowCount et getValue toutes synchronisées. J'ai un certain nombres de threads qui viennent piocher dans cette table et d'autres qui viennent déposer des éléments. Et le problème est que parfois lors du raffraichissement a l'écran le thread Swing doit faire un getRowCount puis parcourir toutes les cases avec getValueAt. Sauf que si un de mes threads prend un objet dans ma table, lorsque le thread de Swing reprend la main, il continue sa boucle et du fait qu'il lui manque une ligne la Stack va renvoyer une exception ArrayOutOfBounds. Du moins c'est l'idée que j'ai de ce qui se passe. Je cherches donc une solution car je me doute bien qu'il en existe, merci
Kupee
TestMan wrote:
Et le debugger il dit quoi ?
Assez difficile a dire car il s'agit de synchro de threads, et que ca n'arrive pas systématiquement ... Bon j'ai résolu le problème de manière radicale : je n'ai plus de JTable a cet endroit là, mais j'aurai bien aimé savoir ...
TestMan wrote:
Et le debugger il dit quoi ?
Assez difficile a dire car il s'agit de synchro de threads,
et que ca n'arrive pas systématiquement ...
Bon j'ai résolu le problème de manière radicale : je n'ai plus de JTable
a cet endroit là, mais j'aurai bien aimé savoir ...
Assez difficile a dire car il s'agit de synchro de threads, et que ca n'arrive pas systématiquement ... Bon j'ai résolu le problème de manière radicale : je n'ai plus de JTable a cet endroit là, mais j'aurai bien aimé savoir ...