Пожалуйста, помогите мне разобраться в проблемах выравнивания BoxLayout

Я пытаюсь создать очень простое окно, используя макеты Java. Мне нужно расположить три элемента: кнопку, индикатор выполнения и метку. Кнопка должна быть отцентрирована по вертикали, индикатор выполнения должен занимать всю ширину, а метка должна быть выровнена по левому краю.

Вот код (предположим, что панель - это панель содержимого JFrame, а кнопка, progressBar и метка были созданы раньше):

BoxLayout layout = new BoxLayout(pane, BoxLayout.Y_AXIS);
pane.setLayout(layout);
button.setAlignmentX(Component.CENTER_ALIGNMENT);
pane.add(button);
progressBar.setAlignmentX(Component.CENTER_ALIGNMENT);
pane.add(progressBar);
label.setAlignmentX(Component.LEFT_ALIGNMENT);
pane.add(label);

Когда я тестирую приложение, я вижу, что все смещено и испорчено: кнопка и метки имеют случайный отступ, Полоса прогресса выглядит хорошо (полная ширина).

Я просто не понимаю, что происходит. Можете ли вы дать мне подсказку?

5
задан gd1 19 April 2011 в 22:06
поделиться