Então… eu abandonei o BoxLayout e decedi usar o JGoodies que parece que vai atender minhas necessidades… mas estou fazendo o Layout na mão e esse código:
FormLayout layout = new FormLayout(
"right:pref, 3dlu, right:pref, right:pref",
"p, 1dlu, p, 3dlu, p, 1dlu, p, 1dlu, p");
PanelBuilder builder = new PanelBuilder(layout);
CellConstraints cc = new CellConstraints();
builder.add(cotacaoNumber, cc.xy(3, 1));
builder.add(date, cc.xy(4, 1));
builder.addSeparator("Empresa", cc.xyw(1, 3, 4));
builder.add(empresaSearch, cc.xywh(1, 5, 1, 3));
builder.add(empresa1, cc.xyw(3, 5, 2));
builder.add(empresa2, cc.xyw(3, 7, 2));
builder.add(empresa3, cc.xyw(3, 9, 2));
JPanel topPanel = builder.getPanel();
Está lançando essa Exception
java.lang.IndexOutOfBoundsException: The grid width must be a positive number.
at com.jgoodies.forms.layout.CellConstraints.<init>(CellConstraints.java:338)
at com.jgoodies.forms.layout.CellConstraints.<init>(CellConstraints.java:300)
at com.jgoodies.forms.layout.CellConstraints.<init>(CellConstraints.java:278)
at com.jgoodies.forms.builder.AbstractFormBuilder.createLeftAdjustedConstraints(AbstractFormBuilder.java:644)
at com.jgoodies.forms.builder.PanelBuilder.addSeparator(PanelBuilder.java:569)
at com.jgoodies.forms.builder.PanelBuilder.addSeparator(PanelBuilder.java:503)
at br.com.genesis.gui.ConhecimentoGUI.initComponents(ConhecimentoGUI.java:148)
at br.com.genesis.gui.ConhecimentoGUI.<init>(ConhecimentoGUI.java:65)
at br.com.genesis.gui.Genesis.<init>(Genesis.java:74)
at br.com.genesis.gui.Genesis.getInstance(Genesis.java:34)
at br.com.genesis.gui.GenesisSplash.<init>(GenesisSplash.java:36)
at br.com.genesis.gui.GenesisSplash.main(GenesisSplash.java:50)
Alguem que usa o JGoodies sabe resolver?
Eu olhei no QuickStart e não vi nada de errado comparando aquele código com o meu.
O que estou fazendo de errado?