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 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
| public class DemoLayout {
public static void main(String[] args) throws MalformedURLException {
JFrame frame = new JFrame();
// un panneau pour la partie bouton plus image au centre
JPanel buttonPanel = new JPanel(new GridBagLayout());
// images pour l'exemple
JLabel imageCenter = new JLabel(new ImageIcon(new URL("https://www.developpez.net/forums/image.php?u=327969&dateline=1420855918&type=thumb")));
JLabel imageLogo = new JLabel(new ImageIcon(new URL("https://gabarit.developpez.be/images/logo.png")));
JButton buttonLeft = new JButton("Département AVJ");
buttonLeft.setBorderPainted(false); // suppression bordure bouton
buttonLeft.setBackground(new Color(120, 190, 60));
JButton buttonRight = new JButton("Département SI");
buttonRight.setBorderPainted(false);
buttonRight.setBackground(buttonLeft.getBackground());
// ici j'impose des contraintes aux boutons, pour qu'ils soient de même largeur
buttonLeft.setMinimumSize(new Dimension(Math.max(buttonLeft.getMinimumSize().width,buttonRight.getMinimumSize().width),
buttonLeft.getMinimumSize().height));
buttonRight.setMinimumSize(new Dimension(Math.max(buttonLeft.getMinimumSize().width,buttonRight.getMinimumSize().width),
buttonRight.getMinimumSize().height));
buttonLeft.setPreferredSize(buttonLeft.getMinimumSize());
buttonRight.setPreferredSize(buttonRight.getMinimumSize());
// une contrainte pour les boutons, pour qu'ils s'étendent dans la hauteur, et dans la largeur, en se partageant équitablement entre eux deux l'espace
GridBagConstraints gbcButton = new GridBagConstraints(0,0,1,1,0.5,1,GridBagConstraints.CENTER,GridBagConstraints.VERTICAL,new Insets(0,0,0,0),0,0);
// une contriante pour l'image au centre
GridBagConstraints gbcImage = new GridBagConstraints(1,0,1,1,0,0,GridBagConstraints.CENTER,GridBagConstraints.NONE,new Insets(0,5,0,5),0,0);
// le bouton de gauche
buttonPanel.add(buttonLeft, gbcButton);
// l'image centrale
buttonPanel.add(imageCenter,gbcImage);
// le bouton de droite
gbcButton.gridx=2;
buttonPanel.add(buttonRight, gbcButton);
// un panel global
JPanel mainPanel = new JPanel(new GridBagLayout());
// je mets le panel avec les boutons dans le panel global
mainPanel.add(buttonPanel, new GridBagConstraints(0,0,1,1,0,0,GridBagConstraints.CENTER,GridBagConstraints.NONE,new Insets(5, 0, 5, 0),0,0));
// la partie au sud du panel global, avec un logo et un texte centrés
JPanel southPanel = new JPanel();
southPanel.setLayout(new BoxLayout(southPanel, BoxLayout.Y_AXIS)); // le BoxLayout vertical met les composants en colonne
imageLogo.setAlignmentX(JLabel.CENTER_ALIGNMENT); // je centre l'image dans le boxlayout
southPanel.add(imageLogo);
JLabel title = new JLabel("Statistiques"); // le texte
title.setAlignmentX(JLabel.CENTER_ALIGNMENT); // je centre le texte
southPanel.add(title);
// je mets le southPanel dans le panel global
mainPanel.add(southPanel, new GridBagConstraints(0,1,1,1,0,0,GridBagConstraints.CENTER,GridBagConstraints.NONE,new Insets(5, 0, 5, 0),0,0));
// je met le panel global au centre de la fenêtre
frame.add(mainPanel);
frame.setSize(400,400);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
} |
Partager