IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants Java Discussion :

comment rafraichir une JTable en cours de traitement?


Sujet :

Composants Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 84
    Points : 61
    Points
    61
    Par défaut comment rafraichir une JTable en cours de traitement?
    Bonjour,
    j'ai une méthode qui traite une liste de répertoires présents dans une JTable (affichée à l'écran). Lorsqu'un des répertoire est en cours de traitement je fais évoluer le contenu de la Jtable afin de savoir où il en est exactement. Sauf que fait les affichages intermédiaires ne se font pas. Seule la dernière valeur inscrite s'effectue. Pour fixer les idées, voici mon programme en pseudo-code (pas du vrai Java pour simplifier la lecture)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    for (i = 0; i < VRows.size(); i++)
    {
        for each File in directory VRows[i][0]
        {
            VRows[i][1] = File.getName();
     
            // Instructions de rafraichissement de la JTable
            ...
     
            // Mon traitement sur le fichier 
            ...
        }
    }
    J'ai fait quelques recherches concernant les problèmes de rafraichissement de JTable (qui semble être une question récurrente). Et j'ai donc déjà testé plusieurs solutions proposées, principalement:
    • un revalidate()
    • un revalidate() suivi d'un repaint()
    • un fireTableDataChanged apres avoir modifié le modèle par défaut


    Malheureusement aucune de ces méthodes n'a marché. Visiblement tant que je ne suis pas sorti de ma boucle la JTable ne se rafraichit pas.

    J'ai aussi fait une tentative en appelant Thread.sleep(10) (dans la version avec un validate() et repaint()) au cas où. Mais là encore sans résultat.

    Quelqu'un aurait une idée?

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Cette boucle longue, elle est appelée comment? Elle est bien exécutée dans un thread indépendant du thread d'affichage?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 84
    Points : 61
    Points
    61
    Par défaut
    En fait, au niveau de mon interface j'ai un bouton "Executer". Actuellement, c'est dans l'écouteur de ce bouton que s'effectue la boucle en question. D'après ta question, tu penses qu'il faudrait que je transforme cette boucle en un thread? Je vais essayer (enfin j'ai d'abord quelques bugs applicatifs a regler avant).

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 84
    Points : 61
    Points
    61
    Par défaut
    Effectivement en threadant mon traitement l'affichage se régénère. Merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB.Net] Comment rafraichir une page aspx ?
    Par bisounux dans le forum ASP.NET
    Réponses: 3
    Dernier message: 02/02/2006, 11h25
  2. comment rafraichir une datagrille
    Par caty139 dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 28/12/2005, 14h40
  3. Comment rafraichir une JTable
    Par critok dans le forum Composants
    Réponses: 3
    Dernier message: 06/12/2005, 13h48
  4. Comment annuler une opération en cours ?
    Par Sydaze dans le forum Langage
    Réponses: 17
    Dernier message: 16/11/2005, 09h14
  5. [JTable] Rafraichir une JTable
    Par nesbla dans le forum Composants
    Réponses: 4
    Dernier message: 08/12/2004, 13h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo