2014-09-09 3 views
0

Juste besoin d'une idée générale comment "synchroniser" la mise à jour des lignes d'un Jtable sous SwingWorker.Synchronisation des lignes Jtable

J'ai beaucoup de threads SwingWorker qui traitent et mettent à jour un seul Jtable. Parfois, l'affichage de l'affichage est "brouillé" et non ce que je veux.

Say par exemple:

if (some condition) { 
    dtm.addRow(...); <---- using DefaultTableModel 
    dtm.fireTableDataChanged(); <<---- have tried this, but still its jumbled up 
    dtm.repaint() ; <<--- have tried this also, to no avail. 
} 

Habituellement comment peut-on faire?

grâce

Répondre

1

J'ai beaucoup de fils de SwingWorker tous font du traitement et la mise à jour à un seul jtable.

Cela semble être une mauvaise idée. Les threads SwingWorker communiquent avec une entité unique (par exemple, un thread de travail superviseur ou quelque chose dans le thread principal) qui prend soin de gérer le JTable lui-même. Ensuite, vous pouvez utiliser des verrous ou synchronized ou autre pour gérer l'accès simultané aux données d'état, et le JTable n'a pas à s'inquiéter à ce sujet.

Questions connexes