Bonjour à tous

Voilà le problème qui me bloque depuis quelques heures :

J'ai une classe qui hérite de JFrame qui doit contenir et afficher des classe qui héritent de JPanel. Donc un JFrame qui est composer de JPanel.

Une de mes classe JPanel doit afficher 5 boutons. Lorsque je passe cette classe en JFrame, les boutons s'affichent correctement, mais dès que je la met en JPanel pour l'intégrer à mon JFrame principal, les boutons ne s'affichent plus alors que le JPanel et sa couleur de fond sont bien présent.

Voici le code du JFrame qui contiendra le JPanel

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
public class Jeu extends JFrame{
 
 
    public Jeu() throws IOException
    {
 
        // Nom de la fenetre
        this.setTitle("Kahuna");
        // Taille de la fenetre
        this.setSize(800,600);
        // Pas de redimmention possible
        this.setResizable(false);
        // On centre la fenetre
        this.setLocationRelativeTo(null);
        // Terminer le processus lorsque l'on clique sur fermer
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 
 
        // Mise en place des différents panel (Carte, Main, Pioche, Log)
 
        // les noms des cartes serviront pour les boutons
        Carte carte1 = new Carte("aloa");
        Carte carte2 = new Carte("coco");
        Carte carte3 = new Carte("faaa");
        Carte carte4 = new Carte("duda");
        Carte carte5 = new Carte("elai");
        Carte tab[] = {carte1, carte2, carte3, carte4, carte5};
 
        // le JPanel qui dois afficher 5 boutons avec les noms des cartes
        MainJoueur joueur1 = new MainJoueur(tab);
        joueur1.setLayout(new BorderLayout());
        joueur1.setBounds(204,400,576,140);
 
        getContentPane().add(joueur1);
 
        getContentPane().setBackground(Color.ORANGE);
 
        this.setVisible(true);
    }
 
}
Et voici le code du JPanel :

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
public class MainJoueur extends JPanel {
 
    JPanel jp = new JPanel();
 
    JButton carte1;
    JButton carte2;
    JButton carte3;
    JButton carte4;
    JButton carte5;
 
    // un tableau de bouton
    JButton tabBouton[] = {carte1, carte2, carte3, carte4, carte5};
 
    // Le constructeur qui prend le tableau de cartes qui contient les noms
    MainJoueur (Carte[] tabCarte)
    {
        // Une couleur de fond pour bien voir le JPanel
        this.setBackground(Color.red);
 
        // La boucle qui crée les boutons
        for(int i = 0; i<tabCarte.length; i++)
        {
            tabBouton[i] = new JButton(tabCarte[i].nom);
            tabBouton[i].setPreferredSize(new Dimension(70, 100));
 
            // Je rajoute les boutons dans le panel au fur et à mesure de leurs
            //création
            this.add(tabBouton[i]);
        }
 
    }
 
}

J'espère que c'est assez clair et que vous pourrez m'aider

Merci d'avance !