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 :

JTable : rafraichissement en live des colonnes et lignes


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 33
    Par défaut JTable : rafraichissement en live des colonnes et lignes
    Bonjour, par désespoir de cause et apres avoir passe toute mon apres midi dessus je me permet de poster ce message. Voici le pseudo code ci-dessous.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    Jtable table;
    DefaultTableModel modele;
     
    Vector v = modele.getDataVector() (Vecteur de vecteurs)
     
    while(nbre_ligne)
     
    {	
    	Vector currentV = new Vector();
     
    	action 1
     
    	--> (Mise a jour colonne 1 => currentV.add("SALUT"))
    	--> (Update de la vue = souci pour moi)
     
    	action 2
     
    	--> (Mise a jour colonne 2 => currentV.add("HELLO"))
     	--> (Update de la vue = souci pour moi)
     
    	action 3
     
    	--> (Mise a jour colonne 3 => currentV.add("ADJEU"))
    	--> (Update de la vue = souci pour moi)
     
    	action 4
     
    	--> (Ajout de la ligne => v.add(currentV)
    	--> (Update de la vue = souci pour moi)
     
    }


    Pour débuter je précise que mon jTable se trouve dans un JScrollPane et j'utilise le modèle de donnée par défaut qui est DefaultTableModel et le modèle de selection par defaut qui est le DefaultListSelectionModel.

    Mon problème est purement esthétique est visuel. Juste après chaque action ci-dessus, j'aimerai que l'utilisateur puisse voir en direct les valeurs ajoutées une à une aux colonnes puis ensuite l'ajout des lignes. Mon vecteur se rempli correctement mais je n'arrive pas a rafraichir la vue du tableau après chaque action. J'ai essayé tout plein de méthodes differentes de rafraichissement dont repaint() sur le jtable mais rien ne marche. Une idée à la question me serait d'un grand secour.

    Merci bcp
    sun

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 277
    Par défaut
    Essaie les méthodes fireXXX de ton model.

  3. #3
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 33
    Par défaut
    Merci pour ta réponse.

    Sauf erreur de ma part, les méthodes "fireXX" dont tu me parles ne sont pas implementees dans le model de donnée par défaut. Hors, je suis contrains a utiliser le modele par defaut. existe-t-il peut-etre une autre alternative sans devoir creer son propre modele ?

    Merci
    sun

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 277
    Par défaut
    Tu peux les utiliser, elles sont héritées de AbstractTableModel.

  5. #5
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 33
    Par défaut
    Merci pour ton conseil. Chose étrange lorsque j'applique la méthode fireTableDataChanged la mise à jour visuelle du tableau s'effectue seulement arrivé a la fin de la procédure dans laquelle s'exécute le code ci-dessous. J'aimerai que le tableau se mette à jour au meme moment que je recois les sorties ecran (system.print). Les timers c'est pour le debugage.

    La variable vLogsCurrent représente mon vecteur de ligne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    vLogsCurrent.add("-");
    System.out.println("bonjour");
    tabModelLogs.fireTableDataChanged();
    Thread.sleep(2000);
     
     
    vLogsCurrent.add("-");
    System.out.println("hello");
    tabModelLogs.fireTableDataChanged();
    Thread.sleep(2000);
     
     
    vLogsCurrent.add("-");
    System.out.println("salut");
    tabModelLogs.fireTableDataChanged();
    Thread.sleep(2000);
     
    vLogsCurrent.add("-");
    System.out.println("salut");
    tabModelLogs.fireTableDataChanged();

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 277
    Par défaut
    Tu bloques le thread principal (EDT) avec tes sleep.
    Lis ce tuto sur l'utilisation de l'EDT:
    http://gfx.developpez.com/tutoriel/j...ing-threading/

    Tu pourras également regarder la classe SwingWorker depuis java 6.

Discussions similaires

  1. [SQL] Transposer des colonnes en lignes + LIKE et SOUNDEX
    Par Anne1969 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 23/11/2005, 14h44
  2. [JTable] Changer la taille des colonnes
    Par lilou77 dans le forum Composants
    Réponses: 2
    Dernier message: 20/09/2005, 11h26
  3. [JTable] définir le type des colonnes
    Par zozolh2 dans le forum Composants
    Réponses: 3
    Dernier message: 17/08/2005, 09h53
  4. [JTable] Annuler le deplacement des colonnes
    Par tit_henry dans le forum Composants
    Réponses: 4
    Dernier message: 11/05/2005, 18h42
  5. transformer des colonnes en lignes
    Par flonardi dans le forum Oracle
    Réponses: 13
    Dernier message: 28/10/2004, 13h43

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