I'm trying to add a GridBagLayout in the center of a BorderLayout, but when I add it to the center, it doesn't appear. Despite this, it appears correctly if I place it in another position in the BorderLayout. I tried to place another Component in the center of the BorderLayout, but nothing appear.
I want to create multiple panels to display them in my JFrame. I'm trying to add these panels while I'm building them with the instance attribute in my JFrame.
Here is an example of what I want to get

import java.awt.*;
import javax.swing.*;
public class Fenetre
{
private JPanel contentPane;
private PanelAccueil panelAccueil;
public void fenetreGraphique()
{
//Définit une nouvelle fenêtre pour le GUI
JFrame fenetre = new JFrame("AideMJ DD5");
fenetre.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
fenetre.setExtendedState(JFrame.MAXIMIZED_BOTH);
fenetre.setLocationRelativeTo(null);
//Définit les panels qui vont pouvoir s'afficher dans la fenêtre
contentPane = new JPanel();
//Ajout des différents panels créés
panelAccueil = new PanelAccueil(contentPane);
contentPane.add(panelAccueil);
//Affichage de la fenêtre
fenetre.setContentPane(contentPane);
fenetre.pack();
fenetre.setVisible(true);
}
public static void main(String[] args)
{
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
new Fenetre().fenetreGraphique();
}
});
}
}
class PanelAccueil extends JPanel
{
private JPanel panelAccueil;
private JLabel messageAccueil;
private JLabel signature;
private JButton nouveauMonstre;
private JButton voirMonstre;
public PanelAccueil(JPanel panel){
panelAccueil = panel;
panelAccueil.setBackground(new Color(51,51,51));
panelAccueil.setLayout( new BorderLayout() );
//Premier panel pour le bandeau en haut
messageAccueil = new JLabel("Bienvenue sur AideMJ pour Donjons & Dragons 5\u00e8me \u00e9dition", SwingConstants.CENTER);
messageAccueil.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
messageAccueil.setForeground( new Color(255,255,255) );
messageAccueil.setFont(new Font("Tahoma", Font.PLAIN, 36));
//Ajout des boutons du menu
JPanel boutons = new JPanel();
boutons.setBackground( new Color(51,51,51) );
boutons.setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.gridy = 0;
gbc.weightx = 1.0;
gbc.weighty = 1.0;
gbc.anchor = GridBagConstraints.CENTER;
nouveauMonstre = new JButton("Nouveau monstre");
nouveauMonstre.setPreferredSize( new Dimension(300, 60) );
boutons.add(nouveauMonstre, gbc);
gbc.gridy = 1;
voirMonstre = new JButton("Voir monstre");
voirMonstre.setPreferredSize( new Dimension(300, 60) );
boutons.add(voirMonstre, gbc);
//Dernier panel pour la signature en bas à droite
signature = new JLabel("D\u00e9velopp\u00e9 par Ebenial", SwingConstants.RIGHT);
signature.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
signature.setForeground( new Color(255,255,255) );
signature.setFont(new Font("Tahoma", Font.PLAIN, 15));
panelAccueil.add(messageAccueil, BorderLayout.NORTH);
panelAccueil.add(boutons, BorderLayout.CENTER);
panelAccueil.add(signature, BorderLayout.SOUTH);
}
}
