JPanel - Comment utiliser un GridLayout en java

GridLayout est un gestionnaire de répartition Swing qui devise le conteneur en grille de plusieurs cases de même dimension dont chaque composant graphique est placé dans une case. Dans le code ci-dessous, on met six boutons dans trois lignes et deux colonnes.

import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class GridLayoutExemple extends JFrame{

GridLayout grid = new GridLayout(3, 2);

public GridLayoutExemple(){
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(250,250);
frame.setVisible(true);
JPanel panel = new JPanel();
frame.setContentPane(panel);
panel.setLayout(grid);

panel.add(new JButton("1"));
panel.add(new JButton("2"));
panel.add(new JButton("3"));
panel.add(new JButton("4"));
panel.add(new JButton("5"));
panel.add(new JButton("6"));
}
public static void main(String[] args) {
new GridLayoutExemple();
}
}
Sortie
gridLayout java

setHgap et setVgap

La méthode setHgap(int h) modifie l'espace horizontal entre deux composants avec une valeur entière comme paramètre.
La méthode setVgap(int v) modifie l'espace vertical entre deux composants avec une valeur entière comme paramètre.

GridLayout dispose aussi d'un constructeur qui fait passé Hgap et Vgap comme arguments:

public gridLayout(int ligne, int col, int hgap, int vgap);
- ligne: la valeur zéro signifie aucun nombre de ligne.
- col: la valeur zéro signifie aucun nombre de colonne.
- hgap: l'espace horizontal.
- vgap: l'espace vartical.

Le résultat après que l'on a ajouté ces deux instructions au code préçédent:

grid.setHgap(10);
grid.setVgap(15);
Sortie
java gridLayout hgap vgap

Autres méthodes

getColumns
Renvoie le nombre de colonnes.
getRows
Renvoie le nombre de lignes.
setColumns
Modifie le nombre de colonnes.
setRows
Modifie le nombre de lignes.
minimumLayoutSize
Détermine la dimension minimale (longueur et hauteur) des lignes et colonnes avec l'espace entre les composants graphiques.

Références:
Site de zéro: gridLayout java
Java2s: How to use GridLayout
enst.fr: utiliser GridLayout