[Java] Gui : mise à jour d'une table

Gui : mise à jour d'une table [Java] - Java - Programmation

Marsh Posté le 04-10-2003 à 19:49:13    

Voilà mon pb est le suivant : je fais des insertions dans une table (c'est du swing) donc je rajoute des colonnes à la volée.
 
En gros je fais :

Code :
  1. DefaultTableModel model = (DefaultTableModel)table.getModel();
  2. for (int i = 0; i < count; i++) {
  3.     model.addRow(row);
  4. }


Et le tout est dans une fonction appelée lors de la pression sur un bouton par :

Code :
  1. jBouton.addActionListener(new java.awt.event.ActionListener() {
  2.     public void actionPerformed(java.awt.event.ActionEvent evt) {
  3.         remplirTable(evt);
  4.     }
  5. });


Le pb c'est que l'opération est assez longue, et l'affichage de la table est mis à jour seulement à la fin... Idem pour la progressbar associée, même en insérant des table.repaint(0) dans la boucle...
 
Comment faire pour forcer le mise à jour ? Faire des threads ça aiderait ?


Message édité par Sixtiz le 04-10-2003 à 19:50:30
Reply

Marsh Posté le 04-10-2003 à 19:49:13   

Reply

Marsh Posté le 04-10-2003 à 19:57:43    

si tu as une progressbar, j'imagine que ton operation d'ajout des données se fait déjà dans un thread. par le meme mecanisme qui met ta progressbar à jour, tu aurais "simplement" à redessiner la table... !?


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 04-10-2003 à 20:06:48    

Ben je pense pas que ça se fasse déjà dans un thread ou alors je suis pas au courant :)
 
La progressbar je la mets à jour avec un jProgressBar.setValue(valeur); au même endroit que le model.addrow.
 
Sachant que le tout se trouve dans la classe Window qui est une JFrame et qui contient la table et le progressbar.

Reply

Marsh Posté le 04-10-2003 à 20:19:35    

ha ouais d'accord..
ben soit tu fais le porc encore un peu plus et tu redessine ta table au meme endroit, su tu utilises un mecanisme de callback  
(y'a pas un TableModelListener ou qqchose comme ça de déjà prevu en fait?)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 04-10-2003 à 20:24:24    

Ben justement, en ajoutant un table.repaint(0) dans la bouce après le addrow, c'est bien ce que je fais non ? mais ça marche pas... la mise à jour se fait seulement à la fin.

Reply

Marsh Posté le 04-10-2003 à 20:37:17    

ha ok ... et ta progressbar? elle est pas mise à jour non plus en fait?


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 04-10-2003 à 20:39:11    

Ben non... y'a rien qui se met à jour en temps réel :sweat:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed