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] probleme de rafraichissement


Sujet :

Composants Java

  1. #1
    Membre averti Avatar de biozaxx
    Profil pro
    Inscrit en
    Août 2004
    Messages
    403
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 403
    Points : 375
    Points
    375
    Par défaut [JTable] probleme de rafraichissement
    Salut,

    j'ai un probleme avec l'affichage d'une jtable apres mise a jour des données dans le model associé:
    Je crée ma table + model : pas de pb
    j'ajoute des données au model, j'appel firestructurechange()
    les nouvelles lignes sont bien presentes dans la table, mais l'affichage est tout bizarre : comme si une colonne suplementaire vide apparait, et les colonnes sont fixes (ne peux plus les interchanger ou augmenter la largeur) etc ...

    voici 2 shots avant et apres:

    avant:
    http://img125.imageshack.us/img125/1201/avant5xi.jpg

    apres:
    http://img492.imageshack.us/img492/1025/apres5cy.jpg

    une idée ?

  2. #2
    Membre actif Avatar de schneidb
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 236
    Points : 240
    Points
    240
    Par défaut
    moi je faisais un setModel sur mon jtable, et ensuite un repaint

  3. #3
    Membre averti Avatar de biozaxx
    Profil pro
    Inscrit en
    Août 2004
    Messages
    403
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 403
    Points : 375
    Points
    375
    Par défaut
    cela ne changre rien
    je fais deja un

    model.fireTableStructureChanged();
    ainsi qu'un jframe.repaint();
    et j'ai également tester repaint() sur le jpanel qui contient la table au cas ou ...

  4. #4
    Membre actif Avatar de schneidb
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 236
    Points : 240
    Points
    240
    Par défaut
    pourquoi un model.fireTableStructureChanged() ?
    ton model est-il correctement rempli? ca vient peut être de là

  5. #5
    Membre averti Avatar de nicotine002
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 577
    Points : 409
    Points
    409
    Par défaut
    Bonjour, peux tu nous donner un bout de code stp?
    Pourquoi ca marche jamais?Vive le café!

  6. #6
    Membre averti Avatar de biozaxx
    Profil pro
    Inscrit en
    Août 2004
    Messages
    403
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 403
    Points : 375
    Points
    375
    Par défaut
    ok voici le bout de code concernant la creation de la table ainsi que l'ajout de nouvelles données. Remarque : il y a 2 model : le model de base + un model pour trier les données...

    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
    33
    34
    35
    36
    37
    38
    39
     
     
    public void setDisplay(ArrayList content, GloDef def ) {
     
        tableA = new JTable();
        if (content!=null&&content.size()>0){
           modelA = new MappingTableModel(tableA);
           modelA.setDisplay(content);
           TableSorter sorter = new TableSorter(modelA); 
           tableA.setModel(sorter);
           FontMetrics metrics = tableA.getFontMetrics(tableA.getFont());
           tableA.getTableHeader().setSize(tableA.getTableHeader().getWidth(), 100);
           sorter.setTableHeader(tableA.getTableHeader()); 
           tableA.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
     
           globalPanelA.setViewportView(tableA);
         }
    }
     
     
     
    public void addConcepts(ArrayList list){ 
     
       for (Iterator iter = list.iterator(); iter.hasNext();) {
     
            GloValue element = (GloValue) iter.next();
     
    	Vector row = new Vector();
    	row.add(element.getId());
    	row.add(element.getAbr());
    	row.add(element.getName());
    	row.add(element.getSynonyms());
    	row.add(element.getRecordStatus());
    	row.add(element);
     
        	model.getData().add(row);  //j'appel le vector contenant les données du model
        	model.fireTableStructureChanged();
            }
    }
    et j'appel frame.repaint() apres avoir appelé la methode addConcept()

    voila

  7. #7
    Membre averti Avatar de biozaxx
    Profil pro
    Inscrit en
    Août 2004
    Messages
    403
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 403
    Points : 375
    Points
    375
    Par défaut
    Citation Envoyé par schneidb
    pourquoi un model.fireTableStructureChanged() ?
    ton model est-il correctement rempli? ca vient peut être de là
    remarque judicieuse ....
    le probleme venait de la
    ce n'est pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    model.fireTableStructureChanged()
    qu'il fallait que j'appel mais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    model.fireTableRowsInserted(0,model.getRowCount());
    merci pour votre aide

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 21/05/2010, 10h17
  2. [JTable] Probleme de rafraichissement
    Par Renaud-62 dans le forum Composants
    Réponses: 2
    Dernier message: 24/06/2008, 15h39
  3. Réponses: 4
    Dernier message: 24/08/2007, 16h44
  4. [jTable] probleme de rafraichissement (conception?)
    Par lkryss dans le forum Composants
    Réponses: 27
    Dernier message: 10/07/2006, 11h59
  5. Probleme de rafraichissement d'un BDGrid
    Par marmotte dans le forum Bases de données
    Réponses: 10
    Dernier message: 28/05/2004, 18h07

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