Bonjour,
J'ai actuellement des lags lorsque je rafraichit ma JTable et je ne trouve pas de solutions à ce problème.
Contexte: J'ai une JTable de 12 colonnes et 10 lignes. Je souhaite updater certaines de ces lignes sur des évènements extérieurs. Donc pour ce faire j'appelle à partir de mon TableModel (et dans le thread graphique via SwingUtilities.invokeLater) :
Tout se passe bien et la JTable se met correctement à jour. L'inconvénient c'est que de temps en temps je reçoit beaucoup de notifications (environ 1000 à la seconde pendant une dizaine de minutes). C'est à ce moment que mon appli commence à lagger. La souris se déplace correctement à l'écran mais lorsque je clic sur une ligne il lui faut une seconde pour sélectionner la ligne (et beaucoup plus de temps au bout de 5 minutes).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 log.debug("fireTableRowsUpdated("+row+")"); fireTableRowsUpdated(row, row);
Ma première solution a été de remplacer le fireTableRowsUpdated par des fireTableCellUpdated car je n'ai pas toujours besoin d'updater les 12 colonnes:
Cette solution m'a l'air d'améliorer légèrement la situation mais ce n'est pas suffisant car le lag est toujours visible.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 log.debug("fireTableRowsUpdated("+row+")"); fireTableCellUpdated(row, 7); fireTableCellUpdated(row, 8); fireTableCellUpdated(row, 9); fireTableCellUpdated(row, 11);
Personnellement, c'est la première fois que j'ai besoin de rafraichir aussi souvent une JTable donc je ne sais pas vraiment comment faire ni même si une JTable peut supporter autant (1000 events par seconde).
Avez-vous des solutions, idées ou piste à creuser?







Répondre avec citation
Partager