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

Agents de placement/Fenêtres Java Discussion :

[JTable] Affichage de scrollbar


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Candidat au Club
    Inscrit en
    Juillet 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 13
    Points : 2
    Points
    2
    Par défaut [JTable] Affichage de scrollbar
    Bonjour,
    quel est le code java permettant d'afficher un tableau dans un scrollbar et d'afficher le scrollbar horizontal et le scrollbar vertical si la taille du tableau est grande?
    Merci.

  2. #2
    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, il faut mettre ta JTable dans un JScrollPane.
    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    JTable table = new JTable();
    JScrollPane scrollPane = new JScrollPane(table);
    taFrame.add(scrollPane);
    Et c'est tout

  3. #3
    Candidat au Club
    Inscrit en
    Juillet 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 13
    Points : 2
    Points
    2
    Par défaut
    Bonjour,
    comment utiliser JTable?j'ai un tableau comment je peut l'afficher sur mon interface(dans le JScrollPanel)?et comment faire apparaitre le scrollbar horizontal et vertical si la taille du mon tableau est grande?
    Aidez moi svp.

  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
    Citation Envoyé par g.aymen Voir le message
    comment utiliser JTable?
    How to Use Tables
    Citation Envoyé par g.aymen Voir le message
    j'ai un tableau comment je peut l'afficher sur mon interface(dans le JScrollPanel)?
    le plus simple c'est d'utiliser le constructeur : JTable(Object[][] rowData, Object[] columnNames)
    Citation Envoyé par g.aymen Voir le message
    comment faire apparaitre le scrollbar horizontal et vertical si la taille du mon tableau est grande?
    Comme précisé dans mon message précédent.

  5. #5
    Candidat au Club
    Inscrit en
    Juillet 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 13
    Points : 2
    Points
    2
    Par défaut
    Bonjour,
    Merci pour votre aide mais je ne sais pas comment utilser JTable.J'ai essayé differents codes que j'ai trouvé sur internet mais ça n'a pas marché.
    J'ai une requette sql qui me retourne une table avec 21 colonnes,svp donnez moi le code complet pour mettre le resultat de ma requette dans une JTable et d'ajouter des scrollbar car la taille est grande.
    Aidez moi c'est urgent!

  6. #6
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Tu as déjà toutes les réponses à tes questions !
    On veut bien t'aider mais si tu n'es pas plus précis, on ne peut pas grand chose pour toi.
    Et arrête de dire que c'est urgent : on fait tous notre maximum pour répondre aux questions. Un peu de patience, et lit ce qui t'a été donné
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  7. #7
    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
    Citation Envoyé par g.aymen Voir le message
    Bonjour,
    Merci pour votre aide mais je ne sais pas comment utilser JTable.J'ai essayé differents codes que j'ai trouvé sur internet mais ça n'a pas marché.
    J'ai une requette sql qui me retourne une table avec 21 colonnes,svp donnez moi le code complet pour mettre le resultat de ma requette dans une JTable et d'ajouter des scrollbar car la taille est grande.
    Aidez moi c'est urgent!
    Au lieu de dire que ça n'a pas marché et demander qu'on te donne le code complet, il faut donner le code que tu as fait et qui n'a pas fonctionné pour qu'on puisse le corriger. Le but du forum n'est pas de tout te faire, mais de t'aider.

    Essai d'être plus précis, je doute que ta requête SQL te renvoi une table, plutôt un ResultSet non? Si c'est bien ça, voila un autre lien qui peut t'aider : Comment parcourir un ResultSet ?

    Si tu ne comprends pas, pose des questions précises sur ce que tu ne comprends pas dans les liens qu'on te donne. Ca n'avance pas si redonne ton sujet initial sans tenir compte de nos réponses.

  8. #8
    Candidat au Club
    Inscrit en
    Juillet 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 13
    Points : 2
    Points
    2
    Par défaut
    Bonjour,
    voilà ma requette
    stmt = connect.createStatement();
    result = stmt.executeQuery("select * from equipement);
    je veux mettre cette résultat dans une JTable et l'afficher.
    Ma table est sous oracle 9i.
    Désolée j'ai dit que c'est urgent car je suis en stage et il faut que je termine dans 2 jours.

  9. #9
    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
    Qu'est-ce que tu ne comprends pas dans les liens?
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    result = stmt.executeQuery("select * from equipement);
    while(result.next()) {
        result.getInt("nomColonne1");
        result.getString("nomColonne2");
        result.getDate("nomColonne3");
        result.getObject("nomColonne4");
    }

  10. #10
    Candidat au Club
    Inscrit en
    Juillet 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 13
    Points : 2
    Points
    2
    Par défaut
    Bonjour,
    oui ok mais comment mettre ce resultat dans la JTable?

  11. #11
    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 l'ai déjà dit.
    Citation Envoyé par CheryBen Voir le message
    How to Use Tables
    le plus simple c'est d'utiliser le constructeur : JTable(Object[][] rowData, Object[] columnNames)

  12. #12
    Candidat au Club
    Inscrit en
    Juillet 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 13
    Points : 2
    Points
    2
    Par défaut
    Bonjour,
    j'ai arrivé à mettre remplir la JTable mais je sais pas comment modifier la taille des colonnes et des lignes si les champs retournés par ma requette sont de taille grande.(ma requette me retourne 21 colonnes et parfois une case contient plusieurs caractères)
    Voilà mon code:
    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
     
    public void affichage()
         {
    table = remplirTable(); //la table sera initialisée par la liste des administrateurs envoyée par la fct 'remplirTable()'
     
               table.setPreferredScrollableViewportSize(new Dimension(500, 120)); //prendre la dimension de la table
               // Un panneau, placé dans la fenêtre
               JScrollPane panneau = new JScrollPane(table,
                                                     JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
                                                     JScrollPane.
                                                     HORIZONTAL_SCROLLBAR_AS_NEEDED); //mettre la table dans ascenceur
               panneau.setPreferredSize(new Dimension(550, 80));
               this.setLocation(100, 100);
               ContentPane.add(panneau, BorderLayout.CENTER); 
    }
     
    JTable remplirTable() {
                    Vector tabLignes=new Vector(), nomCols=new Vector();
                    int i;
                     System.out.println("remplirTableeeeeeeeeeeeeeeee");
                    try {
                      stmt=connect.createStatement();
     
    result = stmt.executeQuery("select * from equipement " );
     
     ResultSetMetaData md = result.getMetaData();
                      System.out.println("md^="+md);
                      nomCols = new Vector();
                      for( i=1; i<=md.getColumnCount (); i++)
                      {
                        nomCols.add(md.getColumnLabel(i));
     
                      }
                      // Mémoriser le résultat dans la JTable
                      while( result.next()) {
     
                       //placer les valeurs dans Vector ligne
                         Vector ligne=new Vector();
                         //le 3 designe le nombre de colonnes qui doit etre connu dans la table
                         for(i=1; i<=md.getColumnCount (); i++)
                         {
                             String ch=result.getString(i);
     
                             ligne.add(ch);
                         }
                        tabLignes.add(ligne);
                       }
                     }
                   catch(Exception e) {
                       System.out.print("erreur1 "+e.getMessage());//récuperer le message d'erreur en cas d'erreur
                   }
     
                   return new JTable(tabLignes,nomCols);//type de retour qui initialise le JTable par la liste des vecteur envoyées remplis des tables
              }

  13. #13
    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
    Tu as 2 solutions :
    tu utilises la méthode de JTable setAutoResizeMode

    tu affectes à chaque collone une taille initiale via la méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    table.getColumnModel().getColumn(index).setPreferredWidth(largeur)
    ps : merci d'éditer ton post pour ajouter la balise CODE (# dans l'édition du message )

  14. #14
    Candidat au Club
    Inscrit en
    Juillet 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 13
    Points : 2
    Points
    2
    Par défaut
    Désolé mais ça n'a pas marché.est ce qu'il y a d'autre solution?
    Et comment modifier la taille d'une ligne?

  15. #15
    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
    Qu'est-ce qui n'a pas marché? ça aurait du fonctionner, peut-on voir le code que tu as utilisé?

    Pour changer la hauteur des lignes, tu as les méthodes setRowHeight(int rowHeight et setRowHeight(int row, int rowHeight).

  16. #16
    Candidat au Club
    Inscrit en
    Juillet 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 13
    Points : 2
    Points
    2
    Par défaut
    Bonjour,
    bon merci ça marche mais la taille de la 1ère ligne qui contient les noms des colonnes ne change pas.
    Voilà mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     TableColumn column = null;
                 for (int i = 0; i < table.getColumnCount(); i++) {
                   column = table.getColumnModel().getColumn(i);
                   table.setRowHeight(i,50);
                     column.setPreferredWidth(200); 
                }
    Une autre question svp,comment modifier la taille de l'écriture dans JTable?

  17. #17
    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
    N'oublie pas d'utiliser la balise CODE (icône # dans l'édition du message).

    Dans ton code tu affectes pour chaque colonne la hauteur de la ligne ayant le même index
    Il faudrait plutôt faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    TableColumn column = null;
    for (int i = 0; i < table.getColumnCount(); i++) {
        column = table.getColumnModel().getColumn(i);
        column.setPreferredWidth(200);
    }
    table.setRowHeight(50);
    Pour changer la police caractères, tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    table.setFont( new Font(....) );
    // ou
    table.setFont(table.getFont().deriveFont(Font.BOLD));
    Pour changer la hauteur de la ligne contenant le nom des colonnes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    JLabel l=(JLabel)table.getTableHeader().getDefaultRenderer();
    l.setPreferredSize(new Dimension(0,30));

  18. #18
    Candidat au Club
    Inscrit en
    Juillet 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 13
    Points : 2
    Points
    2
    Par défaut
    Merci pour votre aide.
    J'ai mis :
    table.setFont( new java.awt.Font("Dialog", 3, 14));

    mais le police de la première ligne qui contient les noms des colonnes ne change,pas seulement les autres lignes qui changent.

  19. #19
    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
    Il faut bien comprendre que le header n'est pas le même objet que les autres lignes de la JTable.
    Il faut appliquer le même changement que celui pour la hauteur des noms de colonnes.
    C'est un mix des 2 derniers codes donnés.

  20. #20
    Candidat au Club
    Inscrit en
    Juillet 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 13
    Points : 2
    Points
    2
    Par défaut
    Vous voulez dire écrire ce code:

    table.setFont( new java.awt.Font("Dialog", 3, 14));
    JLabel l=(JLabel)table.getTableHeader().getDefaultRenderer();
    l.setPreferredSize(new Dimension(0, 50));
    l.setFont(new java.awt.Font("Dialog", 3, 14));

    mais ça change rien.Svp expliquer moi clairement comment procéder?

Discussions similaires

  1. [JTable]Affichage avec un modèle dynamique impossible
    Par leminipouce dans le forum Composants
    Réponses: 4
    Dernier message: 07/02/2006, 19h42
  2. [Débutant] [JTable] affichage d'un vecteur
    Par neXistPa dans le forum Composants
    Réponses: 12
    Dernier message: 08/12/2005, 16h11
  3. [HTML]comment forcer l affichage d1 scrollbar?
    Par luta dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 24/11/2005, 13h32
  4. Réponses: 18
    Dernier message: 25/08/2005, 17h46
  5. [JTABLE] Affichage du nom de la colonne
    Par cameleon2002 dans le forum Composants
    Réponses: 3
    Dernier message: 01/07/2004, 11h08

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