Quel Layout utiliser?

cs_Grulf Messages postés 12 Date d'inscription mardi 1 avril 2008 Statut Membre Dernière intervention 21 mai 2010 - 9 juil. 2008 à 14:53
cs_Grulf Messages postés 12 Date d'inscription mardi 1 avril 2008 Statut Membre Dernière intervention 21 mai 2010 - 10 juil. 2008 à 10:05
Bonjour,
Je veux remplir dans un JPanel un tableau avec 3 colonnes et n lignes (dépend du résultat d'une requête SQL). La 1ère colonne affiche un numéro, la 2ème colonne un nom, la 3ème colonne un état. La 1ère et la 3ème colonne doivent donc être petites et la 2ème plus grande. Je voudrais pouvoir réduire au maximum chaque colonne. J'ai essayé 3 layouts pour ça:
• GridLayout -> Ne permet pas de réduire la largeur d'une colonne (les 3 colonnes font la même taille)
• GridLayout2 -> Devrait permettre de réduire au minimum les largeurs de colonnes, mais je n'y arrive pas
• GridBagLayout -> Je réduis la taille des colonnes, mais tout s'affiche sur 1 seule ligne (je ne trouve la méthode pour lui donner le nombre de lignes)

Code:
        // Layouts
        GridLayout layout1 = new GridLayout(numeros.size(),3);
        GridLayout2 layout2 = new GridLayout2(numeros.size(),3);
        GridBagLayout layout3 = new GridBagLayout();
        resultat.setLayout(layout1);
        // Affichage des éléments des ArrayList de RechercheInscriptionModuleRes
        for (int j =0; j<RechercheInscriptionModuleRes.numeros.size(); j++)
            {resultat.add(lab_num_asso = numeros.get(j));
            resultat.add(bouton = boutons.get(j));
            resultat.add(lab_etat_asso = etats.get(j));
            bouton.setContentAreaFilled(false);
            bouton.setFocusPainted(false);
            } //for
        resultat.setVisible(true);

2 réponses

cs_jojolemariole Messages postés 519 Date d'inscription mercredi 21 mars 2007 Statut Membre Dernière intervention 19 décembre 2016 25
9 juil. 2008 à 16:37
Salut,

En général pour ce genre de chose la JTable est toute indiquée. Cependant, si tu veux, tu peux essayer de faire ça:

GridLayout layout4 = new GridLayout(numeros.size(), 1);
resultat.setLayout(layout4);

// Affichage des éléments des ArrayList de RechercheInscriptionModuleRes
for (int j =0; j<RechercheInscriptionModuleRes.numeros.size(); j++) {
       JPanel panelLigne = new JPanel(new BorderLayout());
       panelLigne.add(lab_num_asso = numeros.get(j), BorderLayout.WEST);
       panelLigne.add(bouton  = boutons.get(j), BorderLayout.CENTER);
       panelLigne.add(lab_etat_asso = etats.get(j), BorderLayout.EAST);
       bouton.setContentAreaFilled(false);
       bouton.setFocusPainted(false);
       resultat.add(panelLigne);
} //for

resultat.setVisible(true);

je te garantis pas le résultats mais tu peux toujours essayer.
0
cs_Grulf Messages postés 12 Date d'inscription mardi 1 avril 2008 Statut Membre Dernière intervention 21 mai 2010
10 juil. 2008 à 10:05
Bah merci, ça me fait ce que je veux à peu près... J'ai plus qu'à bidouiller un peu pour rendre le truc plus joli, mais c'est nickel sinon!
Merci!!!
0
Rejoignez-nous