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

 Java Discussion :

Afficher une table dans un onglet


Sujet :

Java

  1. #1
    Membre habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2008
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2008
    Messages : 382
    Points : 191
    Points
    191
    Par défaut Afficher une table dans un onglet
    Bonjour à tous,


    J'ai des problèmes pour afficher une table dans un onglet.
    La table n'affiche pas les champs de la table.
    voici ma classe qui appel l'onglet résultats :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Panel_resultats panel2 = new Panel_resultats();// Contenu de l'onglet Résultats
    	      tabbedpane.addTab("Résultats", null, panel2.getfiller2(), "La feuille de match");
    		  tabbedpane.setMnemonicAt(0, KeyEvent.VK_1);
    Voici ma classe Panel_resultats
    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
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    import java.awt.Dimension;
    import java.awt.Font;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
     
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
     
     
     
    public class Panel_resultats extends JPanel {
    	/**
             * 
             */
    	private static final long serialVersionUID = 1L;
    	/**
             * 
             */
    	private boolean DEBUG = false;
    	private JPanel panel = new JPanel();
    	private JLabel texte_haut = new JLabel("FEUILLE DE MATCH");
    	public Panel_resultats(){
    		//super(new GridLayout(1,0));
    		//ON AJOUTE LE TEXTE
    		Font police = new Font("Arial", Font.BOLD, 30);
    		texte_haut.setHorizontalAlignment(JLabel.CENTER);
    		texte_haut.setFont(police);
    		texte_haut.setPreferredSize(new Dimension(1100, 100));
     
     
    		//ON CREER LE TABLEAU
            String[] columnNames = {"First Name",
                                    "Last Name",
                                    "Sport",
                                    "# of Years",
                                    "Vegetarian"};
     
            Object[][] data = {
                {"Mary", "Campione",
                 "Snowboarding", new Integer(5), new Boolean(false)},
                {"Alison", "Huml",
                 "Rowing", new Integer(3), new Boolean(true)},
                {"Kathy", "Walrath",
                 "Knitting", new Integer(2), new Boolean(false)},
                {"Sharon", "Zakhour",
                 "Speed reading", new Integer(20), new Boolean(true)},
                {"Philip", "Milne",
                 "Pool", new Integer(10), new Boolean(false)}
            };
     
            final JTable table = new JTable(data, columnNames);
            table.setPreferredScrollableViewportSize(new Dimension(1000, 100));
            table.setFillsViewportHeight(true);
     
            if (DEBUG) {
                table.addMouseListener(new MouseAdapter() {
                    public void mouseClicked(MouseEvent e) {
                        printDebugData(table);
                    }
                });
            }
     
            //Create the scroll pane and add the table to it.
            JScrollPane scrollPane = new JScrollPane(table);
     
     
     
     
    	    panel.add(texte_haut);// On ajoute le texte en haut
            //Add the scroll pane to this panel.
            panel.add(table);
            panel.add(scrollPane);
    	}
     
    	private void printDebugData(JTable table) {
            int numRows = table.getRowCount();
            int numCols = table.getColumnCount();
            javax.swing.table.TableModel model = table.getModel();
     
            System.out.println("Value of data: ");
            for (int i=0; i < numRows; i++) {
                System.out.print("    row " + i + ":");
                for (int j=0; j < numCols; j++) {
                    System.out.print("  " + model.getValueAt(i, j));
                }
                System.out.println();
            }
            System.out.println("--------------------------");
        }
     
    	//ACCESSEURS  // renvoi le tableau
    	public JPanel getfiller2()
    	  {
    	          return panel;
    	  }
     
    }
    Le problème est qu'il renvoi uniquement les cellules et pas l'entete

    Ce tableau est a titre d'exemple pour comprendre l'implantation d'un tableau.

    Merci d'avance

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    d'abord on ajoute pas dans un panel à la fois un jscrollpane et son contenu. Le scrollpane suffit. ensuite, si tu utilise le layout par défaut pour ton jpanel (ce qui est le cas dans ton code) quand tu ajoute son contenu, il faut préciser où l'ajouter, sinon le rendu va un peu tout superposer... Dans ton cas ce serait, par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    panel.setLayout(new BorderLayout);
    panel.add(texte_haut,BorderLayout.NORTH);
    panel.add(table,BorderLayout.CENTER);

  3. #3
    Membre habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2008
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2008
    Messages : 382
    Points : 191
    Points
    191
    Par défaut
    Merci à toi de m'avoir aidé.
    Je me suis mal exprimé dans le sujet du topic.
    En faite ce n'est pas la variable texte_haut qui ne s'affiche pas, mais les noms des champs colonnes du tableau. La variable est : columnNames

    Le tableau que j'aimerais réaliser est assez complexe(voir ci joint).
    Je sais meme pas si c'est réalisable avec la fonction JTable.
    Qu'en pensez vous ?

  4. #4
    Membre chevronné
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Points : 2 197
    Points
    2 197
    Par défaut
    Bonjour, c'est vrai que ton entête est assez complexe. Mais ça parait assez proche de ceci, peut-être pourrais-tu t'en inspirer.

  5. #5
    Membre habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2008
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2008
    Messages : 382
    Points : 191
    Points
    191
    Par défaut
    Le but de ce tableau est de pouvoir vérifier tous ce qui est insérer.
    Est ce possible de vérifier toutes les cellules à la fin à l'aide d'un bouton ?

    Ou est ce qu'il faut utiliser drawString pour le tableau ?

    Quel est la meilleur solution ?

  6. #6
    Membre chevronné
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Points : 2 197
    Points
    2 197
    Par défaut
    Je ne comprends pas trop ce que tu veux dire.
    Tu veux vérifier chaque valeur insérée où? comment?

    Les contrôles doivent se faire soit à la saisie par l'utilisateur, soit par la suite en contrôlant le contenu du modèle de données.

    Je ne vois pas le rapport avec drawString

  7. #7
    Membre habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2008
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2008
    Messages : 382
    Points : 191
    Points
    191
    Par défaut
    Je sais pas si il vaut mieux utiliser drawstring pour faire le tableau ou JTable.

    J'aimerais controler tous les champs à la fin de la saisie du tableau.
    Le problème avec JTable est que j'ai l'impression que l'on ne définit pas de cellule alors comment savoir si on controle la bonne cellule?
    J'ai acheté plusieurs bouquin sur Java notemment
    -Les cahiers du Programmeur SWING (j'espérais pouvoir apprendre la fonction JTable) je me suis apperçu qu'il y a seulement 2 pages sur le JTable.
    Bref extrèment déçu sur le tutoriel.
    J'ai également pris programmer en java avec DELANNOY, c'est pareil je pensais qu'il y aurait des détails sur les fenetres GUI.
    Je pensais également un chapitre sur les bases de données.
    La aussi encore déçu du contenu.


    Du coup je me demande si JTable est la bonne méthode pour faire ce genre de tableau?

  8. #8
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Pour moi la JTable ne te permettra pas à arriver à un résultat d'une telle complexité (enfin c'est peut être jouable, mais le temps que ça prendrais n'en vaudrait pas la chandelle...).

    C'est un tableau en lecture seule? Car dans ce cas tu devrais plutôt te diriger vers des API de reporting genre JasperReports, BIRT & cie

    S'il faut de la saisie ça va être une autre paire de manches...
    Jamais eu l'occasion de voir un tableau aussi complexe permettant la saisie (a part sous excel ou OOO)

  9. #9
    Membre expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Points : 3 083
    Points
    3 083
    Par défaut
    GridBagLayout avec des composants text...
    En tout cas ca va être coton

  10. #10
    Membre habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2008
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2008
    Messages : 382
    Points : 191
    Points
    191
    Par défaut
    Citation Envoyé par sinok Voir le message
    Pour moi la JTable ne te permettra pas à arriver à un résultat d'une telle complexité (enfin c'est peut être jouable, mais le temps que ça prendrais n'en vaudrait pas la chandelle...).

    C'est un tableau en lecture seule? Car dans ce cas tu devrais plutôt te diriger vers des API de reporting genre JasperReports, BIRT & cie

    S'il faut de la saisie ça va être une autre paire de manches...
    Jamais eu l'occasion de voir un tableau aussi complexe permettant la saisie (a part sous excel ou OOO)
    Merci à tous d'avoir répondu

    Il y aura des cellules en lecture seul, et d'autres cellules seront de la saisie.
    Mais ce qui importe surtout est le controle des champs saisies.
    Bref, que tous soit contrôlable afin de transférer les données sur une base de donnée MYSQL.


    Pour information, actuellement le tableau est réalisé sur excel avec une gestion des cellules saisies en utilisant le VBA.
    Au début j'ai trouvé ce système très pratique.
    Dès que j'ai eu terminé de coder, je me suis rendu compte que le fichier excel avait pris du poids.
    -Le fichier faisait environ 2 Mo, le problème est que ce fichier devais être envoyé par mail et que certains clubs assez isolé ont une connection internet bas débit.
    -J'avais également préparer une connection sur ODBC pour envoyer par l'appuie d'une macro les données de la feuille de match sur un serveur distant.
    Le problème également de ODBC impose une configuration de ODBC sur windows.
    Ne pouvant pas configurer tous les PCs qu' utilise cette feuille de match, j'essaie de trouver une nouvelle solution avec le JAVA.

    C'est le langage qui me paraissait la solution la plus efficace pour en faire un soft.

    En apprenant ce langage, j'aurais jamais penser que réaliser ce tableau poserait un problème.

    Si vous avez des solutions n’hésitez pas à poster.

  11. #11
    Membre du Club Avatar de puybaret
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 61
    Points : 65
    Points
    65
    Par défaut
    Citation Envoyé par peofofo Voir le message
    J'ai acheté plusieurs bouquin sur Java notamment
    -Les cahiers du Programmeur SWING (j'espérais pouvoir apprendre la fonction JTable) je me suis apperçu qu'il y a seulement 2 pages sur le JTable.
    Je crois que tu confonds, c'est dans le Cahier du programmeur Java qu'il n'a que 2 pages sur la JTable. Dans le Cahier du programmeur Swing, tout le chapitre 5 lui y est consacré (et aussi une partie du chapitre suivant).

  12. #12
    Membre habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2008
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2008
    Messages : 382
    Points : 191
    Points
    191
    Par défaut
    Bonjour Emmanuel,

    Effectivement, il y a tout un chapitre sur JTable.

    Je crois que sinok a raison, je ne peus pas faire ce genre de tableau avec JTable.
    Je vais essayé avec le composant GrindBagLayout et les composants textes.

    Je vois que les P444 à P469 des cahiers du programmeur swing vont pouvoir m'aider à utiliser ce composant.

    Désolé pour ma critique sur le livre qui n'est pas justifié.
    Ne trouvant pas de solution, je crois que je suis parti du mauvais coté pour résoudre mon problème.

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

Discussions similaires

  1. afficher une table dans un controle onglet
    Par mbo2 dans le forum IHM
    Réponses: 1
    Dernier message: 22/04/2013, 15h55
  2. [Joomla!] Afficher une table dans un article
    Par fx9200pro dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 11
    Dernier message: 28/04/2009, 12h11
  3. afficher une table dans le datagrid avec Access
    Par princesse07 dans le forum C#
    Réponses: 4
    Dernier message: 10/05/2008, 02h01
  4. Réponses: 2
    Dernier message: 15/09/2006, 12h18
  5. Afficher une table dans un formulaire
    Par noob_vba dans le forum IHM
    Réponses: 8
    Dernier message: 20/06/2006, 16h54

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