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 :

Problème dans l'affichage des données en JTable


Sujet :

Composants Java

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    etudiant
    Inscrit en
    Mars 2014
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : etudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2014
    Messages : 38
    Points : 33
    Points
    33
    Par défaut Problème dans l'affichage des données en JTable
    J'essaye de créer une classe qui étend de la class DefaultTableModel

    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
    54
    55
    56
    57
    58
    59
    60
     
    /*
     * To change this license header, choose License Headers in Project Properties.
     * To change this template file, choose Tools | Templates
     * and open the template in the editor.
     */
    package gpapp;
     
    import java.awt.Color;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.Map;
    import java.util.regex.Pattern;
    import javax.swing.DefaultRowSorter;
    import javax.swing.JButton;
    import javax.swing.JOptionPane;
    import javax.swing.JTable;
    import javax.swing.ListSelectionModel;
    import javax.swing.RowFilter;
    import javax.swing.event.DocumentEvent;
    import javax.swing.event.DocumentListener;
    import javax.swing.table.DefaultTableModel;
    import javax.swing.table.TableModel;
    import javax.swing.table.TableRowSorter;
     
     
     
    public class MyTableModel extends DefaultTableModel {
        String[] Identifiers;
        Object [][] Contenu;
        private JTable myTable;
        int value;
     
     
        public MyTableModel( String[] Identifiers,Object [][] data, JTable mytTable) throws SQLException{
            super();
            this.myTable=mytTable;
            this.Identifiers=Identifiers;
            this.setColumnIdentifiers(Identifiers);
            //this.Contenu=data;
            mytTable.setSelectionMode(ListSelectionModel. MULTIPLE_INTERVAL_SELECTION);
            for(int i=0;i<data.length;i++){
                this.addRow(data[i]);
     
            }
            }
     
            mytTable.getTableHeader().setReorderingAllowed(false);
     
            myTable.setAutoCreateRowSorter(true);
     
            myTable.setModel(this);
     
     
     
     
    }
    }
    et dans une autre class je crée un jtable en utilisant le model que j'ai créer tout à lheur

    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
    pst=conn.prepareStatement(sql+conditions);
                rs=pst.executeQuery();
                int i=0;
                while(rs.next()){
     
                        for(int j=1;j<8;j++){
                            data [i][j] = rs.getObject(j);
     
                    }
     
     
                        i++;
     
    }
     
      MyTableModel m = new MyTableModel(Identifiers,data, MyTable);
    à l'exécution mon jtable ne m'affiche pas correctement les données.

    De l'aide SVP!!!

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Définit "pas correctement"... parce que, même si c'est une façon peu commune d'implémenter le modèle, ça devrait fonctionner avec le code que tu as mis (à part l'accolade de trop peut-être... qui pourrait signifier que tu nous as mis exactement le code que tu exécutes, mais une version abrégée).

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    etudiant
    Inscrit en
    Mars 2014
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : etudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2014
    Messages : 38
    Points : 33
    Points
    33
    Par défaut
    Oui c'est vrai j'ai abrégé le code j'ai affiché seulement le constructeur que je suis entrain de l'utiliser, je viens de constater que le problème n'est pas dans la class MytableModel mais plutot lors du remlissage de mon object data
    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
     
     Object [][] data=new Object[100][8];
                String sql="select  des champs  matable where ";
                String conditions="condition";
                pst=conn.prepareStatement(sql+conditions);
                rs=pst.executeQuery();
                int i=0;
                while(rs.next()){
                        for(int j=1;j<8;j++){
                            data [i][j] = rs.getObject(j);
     
                    }
     
                        i++;
                MyTableModel m = new MyTableModel(Identifiers,data, mytable );

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    D'accord, mais si tu pouvais être plus précise dans la description du problème, ça nous permettrait d'éviter de jouer les devins... Ce serait pas la première colonne vide des fois, ton problème (Parce que j varie de 1 à 8 exclu...) ?

    EDIT: En plus, tu utilises un tableau de taille fixée à 100 : si tu as plus de 100 enregistrements dans le résultat de ta requête, tu auras un plantage, et sinon, tu auras des lignes vides affichées dans ta JTable.

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    etudiant
    Inscrit en
    Mars 2014
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : etudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2014
    Messages : 38
    Points : 33
    Points
    33
    Par défaut
    Citation Envoyé par joel.drigo Voir le message
    D'accord, mais si tu pouvais être plus précise dans la description du problème, ça nous permettrait d'éviter de jouer les devins... Ce serait pas la première colonne vide des fois, ton problème (Parce que j varie de 1 à 8 exclu...) ?

    EDIT: En plus, tu utilises un tableau de taille fixée à 100 : si tu as plus de 100 enregistrements dans le résultat de ta requête, tu auras un plantage, et sinon, tu auras des lignes vides affichées dans ta JTable.
    Merci bcp pour votre réponse j'ai trouvé l'erreur.

    mon jtable commence à partir du zéro contrairement au ResultSet qui commence à partir de 1 c pour cette raison javais un décalage dans les cellules.

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

Discussions similaires

  1. Problème dans l'affichage des images
    Par Stefounette dans le forum JavaFX
    Réponses: 2
    Dernier message: 01/06/2010, 15h26
  2. Réponses: 5
    Dernier message: 25/05/2010, 21h58
  3. [displaytag] problème dans l'export des données
    Par ghotique dans le forum Struts 2
    Réponses: 6
    Dernier message: 11/03/2009, 11h25
  4. affichage des données avec jtable
    Par sabrinabest dans le forum Composants
    Réponses: 1
    Dernier message: 23/09/2007, 08h59
  5. [SQL] problème dans l'affichage des images
    Par visqueu dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 03/04/2007, 11h17

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