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, je cherche à comprendre pourquoi ça ne s'affiche pas


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Caxton
    Homme Profil pro
    Sans
    Inscrit en
    Janvier 2005
    Messages
    586
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Sans

    Informations forums :
    Inscription : Janvier 2005
    Messages : 586
    Par défaut JTable, je cherche à comprendre pourquoi ça ne s'affiche pas
    Bonjour à tous,

    J'ai voulue expérimenter l'emploie d'une JTable et je me suis plonger dans un bout de code qui se compile parfaitement. Alors que ce code se compile, je ne voie aucune jTable apparaitre dans mon jPanel4... Pourquoi ?

    Voici le bout de code que j'ai saisie au démarrage de l'application:
    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
     
    public form1() {
            initComponents();
     
     
     
     
            //Initialisation d'un model de table
            DefaultTableModel modelTable = new DefaultTableModel();
     
            modelTable.addColumn(new Object [][]{{null}, {null}}, new String [] {"Titre 1", "Titre 2"});
     
            //Initialisation d'un jTable
            JTable tableau = new JTable();
     
                tableau.setAutoCreateColumnsFromModel(false);
     
                tableau.setModel(modelTable);
     
            //Initialisation d'un jScrollPane
            JScrollPane scroll = new JScrollPane(tableau);
     
                scroll.setViewportView(tableau);
     
            jPanel4.add(scroll);
        }
    Merci pour vos informations

  2. #2
    Membre éclairé Avatar de Caxton
    Homme Profil pro
    Sans
    Inscrit en
    Janvier 2005
    Messages
    586
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Sans

    Informations forums :
    Inscription : Janvier 2005
    Messages : 586
    Par défaut
    Désolé du double post.
    En grattant un peux plus loin, je suis arrivé à faire quelque-chose.

    Lorsque je met ceci:
    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
     
    //Initialisation d'un model de table
            DefaultTableModel modelTable = new DefaultTableModel();
     
            modelTable.addColumn(new Object [][]{{null}, {null}}, new String [] {"Titre 1", "Titre 2"});
     
            String [] chaine = {"a", "b"};
     
            modelTable.addRow(chaine);
     
            //Initialisation d'un jTable
            JTable tableau = new JTable();
     
                tableau.setAutoCreateColumnsFromModel(true);
     
                tableau.setModel(modelTable);
     
            //Initialisation d'un jScrollPane
            JScrollPane scroll = new JScrollPane();
     
                scroll.setLocation(0, 0);
                scroll.setSize(458, 156);
     
                scroll.setViewportView(tableau);
     
            jPanel4.add(scroll);
    J'arrive bien à afficher un tableau. Toutefois il n'y a qu'une seule colonne et je ne voie pas "b" apparaitre. Donc l'organisation de mon tableau n'est pas juste.

    Titre 1 | Titre 2
    a | b

  3. #3
    Membre Expert
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 097
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 097
    Par défaut Reponse possible
    Bonjour,

    Au regard de votre code, j'ai un peu de mal à comprendre l'interret de travailler avec le DefaultTableModel. Dans la mesure ou vous désirez créer un tableau vide, uniquement formaté en terme de colonnes, il vous suffit d'invoquer le bon constructeur de DefaultTableModel pour obtenir instantannément ce que vous voulez, c'est à dire un tableau contenant des lignes de valeurs null.

    Voilà comment je ferai à votre place :

    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
           // Exemple pour un tableau de deux colonnes contenant deux lignes de valeurs nulles.
            java.util.Vector<String> nomsColonnes = new java.util.Vector<String>();
            nomsColonnes.add("Colonne1");
            nomsColonnes.add("Colonne2");
            nomsColonnes.trimToSize();
            DefaultTableModel modelTable = new DefaultTableModel(nomsColonnes, 2);
            JTable tableau = new JTable(modelTable);
            //Initialisation d'un jScrollPane
            JScrollPane scroll = new JScrollPane();
     
                scroll.setLocation(0, 0);
                scroll.setSize(458, 156);
     
                scroll.setViewportView(tableau);
     
            jPanel4.add(scroll);
    Pour ce qui est de votre code, le résultat que vous obtenez est on ne peut plus juste !
    En effet, quand vous utilisez
    modelTable.addColumn(new Object [][]{{null}, {null}}, new String [] {"Titre 1", "Titre 2"});
    vous cherchez à insérrer deux colonnes avec une méthode qui ne permet d'en ajouter qu'une. En effet, la méthode se nomme addColumn et non pas addColumns.
    Pour respecter votre démarche, il vous suffit de remplacer votre ligne par les deux lignes suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    modelTable.addColumn("Colonne 1", new Object[]{null, null});
    modelTable.addColumn("Colonne 2", new Object[]{null, null});
    Bonne continuation.
    Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
    Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !

    Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
    Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
    Tout sur les réseaux : https://reseau.developpez.com/cours/
    Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
    Tout sur le matériel : https://hardware.developpez.com/cours/

  4. #4
    Membre éclairé Avatar de Caxton
    Homme Profil pro
    Sans
    Inscrit en
    Janvier 2005
    Messages
    586
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Sans

    Informations forums :
    Inscription : Janvier 2005
    Messages : 586
    Par défaut
    Effectivement, expliqué ainsi

    Pour en revenir à mon code du début, je cherchais avant tout à comprndre la base de l'affichage d'un tableau par le code. C'est chose faite dorénavant.

    Un grand merci.

  5. #5
    Membre Expert
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 097
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 097
    Par défaut Pas de quoi
    Je vous en prie, microbulle, ce fût un plaisir.
    Cependant, il vous faudrait maintenant placer votre post en mode Résolu...
    Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
    Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !

    Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
    Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
    Tout sur les réseaux : https://reseau.developpez.com/cours/
    Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
    Tout sur le matériel : https://hardware.developpez.com/cours/

  6. #6
    Membre éclairé Avatar de Caxton
    Homme Profil pro
    Sans
    Inscrit en
    Janvier 2005
    Messages
    586
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Sans

    Informations forums :
    Inscription : Janvier 2005
    Messages : 586
    Par défaut
    C'est exact
    C'est un oublie de ma part

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

Discussions similaires

  1. Cherche à comprendre le but d'une certaine ligne d'un script shell
    Par publicStaticVoidMain dans le forum Shell et commandes GNU
    Réponses: 10
    Dernier message: 18/03/2008, 19h55
  2. je cherche à comprendre <ahref=action
    Par rougedragon dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 30/09/2006, 00h32
  3. [JTable][Header]Cherche à rendre 'dynamique' les header
    Par Hashitori dans le forum Composants
    Réponses: 1
    Dernier message: 07/04/2006, 18h13
  4. Nouveau sur XML cherche à comprendre un truck...
    Par shadowbob dans le forum XML/XSL et SOAP
    Réponses: 5
    Dernier message: 11/02/2006, 17h10
  5. [JLabel][HTML]pourquoi mes images s'affiche pas?!
    Par La Truffe dans le forum Composants
    Réponses: 8
    Dernier message: 29/04/2004, 12h23

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