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 :

Affichage JTable dans JFrame


Sujet :

Composants Java

  1. #1
    Membre expérimenté Avatar de nathieb
    Homme Profil pro
    DevOps
    Inscrit en
    Mai 2004
    Messages
    1 058
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : DevOps
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 058
    Points : 1 532
    Points
    1 532
    Par défaut Affichage JTable dans JFrame
    Bonjour,

    Voili voilou mon pb, je me mets à swing, histoire de changer et voili pas que j'ai l'idée de faire apparaître des données dans un tableau !

    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
     
    import java.util.Vector;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
    import model.ChargementBase;
    import model.user;
     
    /**
     *
     * @author moi
     */
    public class AffichageTables extends JFrame{
     
        public Vector data;
        public Vector columnName;
        public JTable tableau;
        public JPanel panel;
     
        public AffichageTables(){
            System.out.println("Chargement AffichageTables");
            //panel = new JPanel();
            //panel.setBounds(new Rectangle(250,150,30,10));
            //panel.setSize(new Dimension(40,40));
            //this.getContentPane().add(panel);
            //this.setSize(350, 160);
            this.pack();
        }
        public void getData(String table){
            ChargementBase base = new ChargementBase();
            Vector<user> users = new Vector<user>();
            users =  (Vector<user>) base.getUtilisateurs();
            columnName = new Vector();
            columnName.add("Clef");
            columnName.add("Nom");
            tableau = new JTable(users,columnName);
            tableau.setBounds(10,10,100,100);
            //panel.add(new Button("essai"));
            JScrollPane scrollPane = new JScrollPane(tableau);
     
            scrollPane.add(tableau);
            //panel.add(tableau);
            tableau.setVisible(true);
            this.validate();
        }
    }
    Dans la fenêtre principale j'utilise le code suivant ...
    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
     
    private void listeUserMenuItemActionPerformed(java.awt.event.ActionEvent evt) {                                                  
            if(this.table != null){
                this.table.getData("essai");
                this.table.setVisible(true);
                this.table.setFocusable(true);
            }else{
                System.out.println("Création du tableau!!!");
                table = new AffichageTables();
                table.getData("essai2");
                table.setBounds(30, 10, 430, 220);
                //desktopPane.add(table, javax.swing.JLayeredPane.DEFAULT_LAYER);
                System.out.println("Création du tableau!!!");
     
                this.table.setVisible(true);
                this.table.setFocusable(true);
                this.desktopPane.revalidate();
            }
    La frame s'affiche mais pas de Jtable ??? par contre si j'utilise un Button dans un panel pas de pb !
    J'avoue je patauge un peu dans l'api, bref quelqu'un peut il me guider ou m'aider à réécrire proprement ? histoire que je comprenne enfin SWING

    PS : pas d'exception au niveau base de donnée.
    Olivier

  2. #2
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 713
    Points : 4 792
    Points
    4 792
    Par défaut
    Exemple de code affichant une table :
    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
    import javax.swing.JTable;
     
    public class NewJFrame extends javax.swing.JFrame {
     
        /** Creates new form NewJFrame */
        public NewJFrame() {
            JTable jTable1;
            jTable1 = new javax.swing.JTable();
            jTable1.setModel(new javax.swing.table.DefaultTableModel(
                new Object [][] {
                    {null, null, null},
                    {null, null, null},
                    {null, null, null},
                    {null, null, null}
                },
                new String [] {
                    "Nom", "Prenom", "age"
                }
            ));
            getContentPane().add(jTable1, java.awt.BorderLayout.CENTER);
     
            pack();
        }
     
     
        public static void main(String args[]) {
            java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
                    new NewJFrame().setVisible(true);
                }
            });
        }
     
    }

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Décembre 2009
    Messages : 67
    Points : 66
    Points
    66
    Par défaut
    je pense que tu a oublier de mettre dans tableau dans le conteneur de ton frame
    dans cette parti
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    JScrollPane scrollPane = new JScrollPane(tableau);
    scrollPane.add(tableau);
    //panel.add(tableau);
    //pour quoi tu a commenté cette ligne et déjà tu ajout ton tableau deux fois dans le scollpane
    ajout ton tableau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    scrollPane.getViewport().add(tableau);
    //ou
    JScrollPane scrollPane = new JScrollPane(tableau);
    //ou
    scrollPane.add(tableau);
    ensuite met dans JScrollPane dans ton jframe

Discussions similaires

  1. Problème affichage JPanel dans JFrame
    Par Papipen dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 18/06/2009, 20h45
  2. problème graphique (jtable dans jframe)
    Par ciolvic dans le forum Débuter
    Réponses: 12
    Dernier message: 20/04/2009, 17h30
  3. Probleme affichage arraylist dans jtable
    Par brew94 dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 19/12/2008, 13h31
  4. affichage Images dans une JFrame
    Par rburney dans le forum Agents de placement/Fenêtres
    Réponses: 1
    Dernier message: 19/12/2007, 17h39
  5. Réponses: 3
    Dernier message: 13/08/2007, 23h30

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