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] Perte des données


Sujet :

Composants Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 560
    Points : 148
    Points
    148
    Par défaut [JTable] Perte des données
    Salut,

    J'utilise une JTable qui est "éditable", je peux donc rentrer du texte dans chaque cellule au clavier, mais dès que je sorts de la cellule pour aller dans une autre, les données sont effacées.

    A quoi est-ce dû ?
    Merci pour toute info.

  2. #2
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Salut david si tu perd tes donnés apres avoir editer ta jTable, c'est que problablement qu'elles ne sont pas stockés dans une structure de donné

    Assure toi bien que tu as lié ta jTable avec un TableModel, la jTable n'est juste que la representation d'une structure de donné. regarde DefaultTableModel ou AbstractTableModel dans la Doc

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 560
    Points : 148
    Points
    148
    Par défaut
    J'avais déjà défini un "TableModel", mais je n'avais pas mis une méthode dedans permettant d'afficher les éléments saisis dans le "JTable". Par contre, même s'ils restent affichés dans le "JTable", pas moyen de les récupérer dans une variable.

    Merci d'avance pour toute info supplémentaire.

  4. #4
    Membre éprouvé
    Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2003
    Messages
    782
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2003
    Messages : 782
    Points : 935
    Points
    935
    Par défaut
    Et il fait quoi ton "TableModel" ? (on peut avoir un peu de code svp)

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 560
    Points : 148
    Points
    148
    Par défaut
    OK, voilà le code de mon modèle :

    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
     class MyTableModel extends AbstractTableModel {
            private String[] columnNames = {"Champs",
                                            "Données"};
            private Object[][] data = {
                {"Nom",""},{"Editeur",""},{"Année",""},{"Métal",""},{"Diamètre",""}};
     
            public int getColumnCount() {
                return columnNames.length;
            }
     
            public int getRowCount() {
                return data.length;
            }
     
            public String getColumnName(int col) {
                return columnNames[col];
            }
     
            public Object getValueAt(int row, int col) {
                return data[row][col];
            }
     
     
            public Class getColumnClass(int c) {
                return getValueAt(0, c).getClass();
            }
     
     
            public boolean isCellEditable(int row, int col) {
              return true;
            }
     
     
        public void setValueAt(Object value, int row, int col) {
             data[row][col] = value;
             fireTableCellUpdated(row, col);
         }
     
            private void printDebugData() {
                int numRows = getRowCount();
                int numCols = getColumnCount();
     
                for (int i=0; i < numRows; i++) {
                    System.out.print("    row " + i + ":");
                    for (int j=0; j < numCols; j++) {
                        System.out.print("  " + data[i][j]);
                    }
                    System.out.println();
                }
                System.out.println("--------------------------");
            }
        }
    A+

  6. #6
    Membre habitué
    Inscrit en
    Septembre 2003
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 174
    Points : 194
    Points
    194
    Par défaut
    Salut
    Ton Model me semble correct.
    Citation Envoyé par david71
    Par contre, même s'ils restent affichés dans le "JTable", pas moyen de les récupérer dans une variable.
    Qu'est ce que tu veux faire exactement ?

    sylvain_2020

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 137
    Points : 143
    Points
    143
    Par défaut
    Si tu dis 'ils restent affichés dans la jtable", ca veut dire que ton objet data a bien été mis-à-jour. Donc si tu veux récupérer une valeur, il faut aller la récupérer dedans.

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 560
    Points : 148
    Points
    148
    Par défaut
    Salut, et bien en fait lorsque j'ai rempli mon "JTable", je veux récupérer mes données dans un tableau, donc lors de l'appui sur un bouton, j'appelle cette méthode :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
         Object[][] dataStr = {{"",""}};     
         MyTableModel m = new MyTableModel();
     
         dataStr = new Object[5][1];
         dataStr[0][0] = m.getValueAt(1,0);
         for(int i = 0 ; i <=4 ; i++)
         {
           dataStr[0][i] = m.getValueAt(i,1);
         }
    Ce qui est curieux, c'est que lors de l'affectation de la colonne 0 du JTable, j'ai bien "Editeur" dans "dataStr", par contre pas moyen de remplir dataStr avec la colonne 1 de mon JTable avec les données que je viens de saisir.

    A+

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 560
    Points : 148
    Points
    148
    Par défaut
    Bon finalement, la variable perd ses données dès que le modèle abstrait est créé, donc il faut récupérer les données dans une autre variable au fur et à mesure...

    A+

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

Discussions similaires

  1. Pertes des données après un submit
    Par philippef dans le forum Langage
    Réponses: 4
    Dernier message: 22/08/2007, 21h34
  2. [URLRewriting] perte des données du formulaire
    Par DarkCerise dans le forum Apache
    Réponses: 6
    Dernier message: 07/03/2007, 12h08
  3. [JTable] insérer des données...
    Par gondek dans le forum Composants
    Réponses: 9
    Dernier message: 13/10/2005, 11h56
  4. [JTable] Tri des données
    Par soulhouf dans le forum Composants
    Réponses: 7
    Dernier message: 08/09/2005, 14h01
  5. [JTable] Insérer des données?
    Par waldo2188 dans le forum Composants
    Réponses: 4
    Dernier message: 29/03/2005, 11h40

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