У меня есть два JPanel, которые я хочу расположить друг над другом, внутри большого JPanel. "panel_controls" переопределяет .getPreferredSize (). Код:
public final class GUIPanelMain extends JPanel {
//...
private JPanel panel_images;
private JPanel panel_controls;
//...
private void addPanels() {
new BoxLayout(this,BoxLayout.Y_AXIS); //Bleh! Still is horizontal!
this.add(panel_images);
this.add(panel_controls);
}
//...
}
К сожалению, макет все равно настроен горизонтально. Только когда я изменяю размер JPanel, все компоненты располагаются в нужных местах (в данном случае по вертикали).
Я прочитал следующее в документации: «BoxLayout пытается сделать все компоненты в столбце такими же широкими, как самый широкий компонент. Если это не удается, он выравнивает их по горизонтали в соответствии с их X-выравниванием»
Каковы условия отказа? Как я могу заставить его быть вертикально выровненным?
Спасибо