Я довольно часто использовал MigLayout, я не уверен, что есть действительно хороший способ сделать это. Что вы действительно хотите - это иметь 5 столбцов и использовать разбиение по оси Y, чего, к сожалению, вы не можете сделать.
Я вижу три подхода:
1) Используйте 5 jpanels, по одному для каждого столбца, и просто используйте flowy в MigLayout для каждого столбца
2) Настройте матрицу и назначьте каждому компоненту количество ячеек
p.add(component1, "cell 0 0 1 1");
p.add(component2, "cell 1 0 1 2");
и т. Д. Это работает, если довольно хорошо, если у вас нет много разных конечных точек в каждом столбце
"span" может быть немного чище здесь:
p.add(component1, "spany 1");
p.add(component2, "spany 2");
p.add(component3, "spany 1");
p.add(component4, "spany 3");
p.add(component5, "spany 1, wrap");
3) Используйте "nogrid" и просто установите границы размера для каждого компонента