Не используйте BoxLayout.Это работает только для очень простых случаев.
Для вашего случая я бы порекомендовал либо GridBagLayout, либо (мой любимый) GroupLayout.
Для GroupLayout я создал подкласс (LayoutHelper ) с некоторыми служебными методами и полезными конструкторами, что значительно облегчает написание макета.
Конечно, обычно я выравниваю все компоненты в группе одинаково, поэтому в * это не так уж мало.1010 * ваш случай , как это было бы в простом случае.
LayoutHelper h = new LayoutHelper(pane);
h.setVerticalGroup
( h.sequential( button, progressBar, label));
h.setHorizontalGroup
( ((ParallelGroup)h.parallel())
.addComponent(button, Alignment.CENTER)
.addComponent(progressBar)
.addComponent(label, Alignment.TRAILING));
Вот скриншот:
Для простого "всеговыровнены так же ", горизонтальная группа будет выглядеть так:
h.setHorizontalGroup
( h.parallel (button, progressBar, label));
(необязательно с первым аргументом, указывающим выравнивание).