Ciao,
io ho fatto il seguente codice di prova di un BoxLayout

codice:
package boxlayoutexample;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.SwingUtilities;

/**
 *
 * @author utente
 */
public class BoxLayoutExample extends JFrame {

    public BoxLayoutExample() {
        super("Esempio di BoxLayout");
        Color colore = new Color(200, 210, 222);
        Container contentPane = this.getContentPane();
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setPreferredSize(new Dimension(400, 300));
        contentPane.setBackground(colore);
        // Panel
        JPanel pannelloPrimaRiga = new JPanel();
        pannelloPrimaRiga.setLayout(new BoxLayout(pannelloPrimaRiga, BoxLayout.LINE_AXIS));
        pannelloPrimaRiga.setAlignmentX(Component.LEFT_ALIGNMENT);
        JLabel label11 = new JLabel("Prima riga prima etichetta");
        JLabel label12 = new JLabel("Prima riga seconda etichetta");
        label11.setAlignmentX(Component.LEFT_ALIGNMENT);
        label12.setAlignmentX(Component.LEFT_ALIGNMENT);
        pannelloPrimaRiga.add(label11);
        pannelloPrimaRiga.add(Box.createRigidArea(new Dimension(15, 0)));
        pannelloPrimaRiga.add(label12);
        JPanel pannelloSecondaRiga = new JPanel();
        pannelloSecondaRiga.setAlignmentX(Component.LEFT_ALIGNMENT);
        pannelloSecondaRiga.setLayout(new BoxLayout(pannelloSecondaRiga, BoxLayout.LINE_AXIS));
        JLabel label21 = new JLabel("Seconda riga prima etichetta");
        JLabel label22 = new JLabel("Seconda riga seconda etichetta");
        pannelloSecondaRiga.add(label21);
        pannelloSecondaRiga.add(Box.createRigidArea(new Dimension(15, 0)));
        pannelloSecondaRiga.add(label22);
        JPanel panel = new JPanel();
        panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
        panel.add(pannelloPrimaRiga);
        panel.add(Box.createRigidArea(new Dimension(0, 10)));
        panel.add(pannelloSecondaRiga);
        JPanel p = new JPanel(new BorderLayout());
        p.add(panel, BorderLayout.CENTER);
        JScrollPane scrollPane = new JScrollPane(p);
        contentPane.add(scrollPane, BorderLayout.CENTER);
        this.pack();
        this.setLocationRelativeTo(null);
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        SwingUtilities.invokeLater(new Runnable() {

            public void run() {
                BoxLayoutExample frame = new BoxLayoutExample();
                frame.setVisible(true);
            }
        });
    }
}
Però il tutto mi viene portato a ridosso del bordo del JFrame.
C'è un modo per dare al content pane una specie di margine?
Grazie.

EDIT: ho risolto estendendo AbstractBorder e facendogli ritornare l'Insets voluto.
Ma c'è un metodo più diretto?