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 :

mise à jour JTable


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    268
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 268
    Par défaut mise à jour JTable
    Bonjour, je suis bloqué sur un problème de raffraichissement de JTable.

    J'ai choisi de suivre ce tutorial :
    http://baptiste-wicht.developpez.com.../swing/jtable/
    afin d'avoir un modèle dynamique.

    Mon application est un ensemble d'onglet dont l'un d'entre eux est Logs.
    Logs contient un Jtable .


    Toute mon application repose sur un Thread qui run() chaque minute pour relancer certaines requêtes en base de données puis mettre à jour les JLabels associés.

    Ce que je ne comprends pas est:

    si dans le constructeur de mon modèle , j'ajoute un élément dans la liste:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
      public ModeleDynamique() {
            super();
            this.addLog(new Log("Contriddbs","[EUR HIC0 IPCFR] > 5.0	 MINUTES"));
        }
        public void addLog(Log log) {
            logs.add(log);
            fireTableRowsInserted(0, logs.size() - 1);
     
        }
    Cela fonctionne!

    Par contre si je fais dans l'objet où est instancié mon model : ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    	    tabmodele = new ModeleDynamique();
    	    tabmodele.add();
     
    où add(){
    this.addLog(new Log("Contriddbs","[EUR HIC0 IPCFR] > 5 MINUTES"));
    }
    Ca ne fait rien au niveau affichage.

    De façon générale, je n'arrive pas à avoir une mise à jour de mon JTable bien que la liste contenant les données le soit et même en rappelant le paint() du JTable ou de l'onglet le contenant.

    Comment faire?
    Merci

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Il ne faut jamais directement appeler la méthode paint d'un composant (sauf pour le dessiner sur une image ou un élément extérieur). La méthode repaint est là pour indiquer à Swing qu'un composant doit être redessiné, Swing choisissant le moment idoine pour ce faire.

    Dans ton cas le problème vient probablement d'une histoire de non respect de l'EDT (à savoir le Thread Graphique). En effet toutes les opérations de modification d'un composant graphique doivent être réalisées dans l'EDT et non depuis un autre Thread. Si l'on se trouve dans un Thread autre que l'EDT et que l'on veut modifier un composant Swing, il faut englober le code modifiant les composants graphiques (et uniquement les composants graphiques, les calculs et requêtes doivent rester dans le Thread externe) dans un Runnable que l'on passe en paramètre à la méthode statique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SwingUtilities.invokerLater(Runnable r);
    .

    Cf le tutoriel suivant: http://gfx.developpez.com/tutoriel/j...ing-threading/ qui est une lecture obligatoire pour développeur touchant à Swing

Discussions similaires

  1. Mise à jour JTable Model
    Par pingouinos_64 dans le forum JDBC
    Réponses: 2
    Dernier message: 08/05/2010, 13h49
  2. probléme mise à jour JTABLE
    Par altaro dans le forum Composants
    Réponses: 0
    Dernier message: 23/05/2009, 21h49
  3. [JTable] mise à jour des données
    Par tripop dans le forum Composants
    Réponses: 3
    Dernier message: 04/02/2009, 18h52
  4. [JTable] Probleme pour afficher la mise à jour du modèle
    Par Yannick_from_31 dans le forum Composants
    Réponses: 2
    Dernier message: 02/06/2006, 19h10
  5. [JTable] Mise à jour
    Par le Daoud dans le forum Composants
    Réponses: 2
    Dernier message: 22/07/2005, 17h13

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