Я пытаюсь добавить GridBagLayout в центре BorderLayout, но когда я добавляю его в центр, он не появляется. Несмотря на это, он отображается правильно, если я помещаю его в другую позицию в BorderLayout. Я попытался разместить другой компонент в центре BorderLayout, но ничего не появилось.
Я хочу создать несколько панелей, чтобы отображать их в моем JFrame. Я пытаюсь добавить эти панели, пока создаю их с атрибутом экземпляра в моем JFrame.
Вот пример того, что я хочу получить
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);
}
}