L'instance de la classe BoxLayout permet de disposer les composants selon un axe horizontal ou vertical.

Un objet de type Box peut être créé verticalement ou horizontalement, par l'intermédiaire de deux méthodes statiques de la classe Box, respectivement createVerticalBox() et createHorizontalBox().

Box boiteV = Box.createVerticalBox();
Box boiteH = Box.createHorizontalBox();

Ce gestionnaire de placement n'autorise pas un saut de ligne ou de colonne en cas de dépassement de la taille maximum possible. Dans ce cas, l'objet BoxLayout tente de réduire la taille des composants ou les tronque si cela n'est pas possible.

BoxLayout PlacementBoite = new BoxLayout(Container cible, int axe);

Quatre axes d'orientation, représentés par des constantes statiques de la classe BoxLayout, sont possibles :

BorderLayout.X_AXIS : Axe vertical.
BorderLayout.Y_AXIS : Axe horizontal.
BorderLayout.LINE_AXIS : Axe de la direction d'une ligne fournie par la propriété ComponentOrientation du panneau de contenu.
BorderLayout.PAGE_AXIS : Axe de la direction d'une page fournie par la propriété ComponentOrientation du panneau de contenu.
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class Boite extends JFrame {
    public Boite() {
        super("Démonstration BoxLayout");

        this.creerInterface();

        super.pack();
        super.setVisible(true);
    }
    public void creerInterface() {
        JPanel pan = (JPanel)this.getContentPane();
        JTextField texte1 = new JTextField(25);
        JButton btn1 = new JButton("Premier bouton");
        JTextField texte2 = new JTextField(25);
        JButton btn2 = new JButton("Second bouton");

        BoxLayout gestionnaire = new BoxLayout(pan, BoxLayout.X_AXIS);
        pan.setLayout(gestionnaire);
        pan.add(texte1);
        pan.add(btn1);
        pan.add(texte2);
        pan.add(btn2);
    }
    public static void main(String[] args) {
        Boite boite = new Boite();
    }
}