2013-03-13 4 views
0

У меня есть три компонента, которые должны быть выложены вертикально, так что верхний компонент занимает 30% от доступной высоты окна, средний занимает 20%, а нижний занимает остальную часть ,Рекомендация для LayoutManager

По мере изменения размера окна они будут, но их высота относительно окна должна оставаться неизменной.

Какой менеджер макета следует использовать для его реализации?

+0

Обратите внимание, что GridBagLayout 'weightx/weighty' только распределяет ** дополнительное ** доступное пространство (оно будет сначала давать каждому компоненту его« preferredSize », если это возможно). Поэтому, если вы не навязываете предпочтительный размер этих компонентов (0x0), 'GridBagLayout' не достигнет именно того, что вы ищете. –

ответ

2

Посмотрите на Visual Guide to Layout Managers и найдите подходящие для ваших нужд (или более одного - вы можете использовать более одного менеджера макетов).

Я бы порекомендовал GridBagLayout. В нем много «тонких настроек». weigthy - это поле GridBagConstraints вашего интереса - оно управляет тем, как пространство будет распределено по элементам по вертикали при изменении размера.

2

Если вы хотите пойти со стандартным менеджером макетов, обратитесь к visual guide. GridBagLayout - ваш лучший выбор, я думаю.

Я бы, вероятно, использовал бы miglayout для увеличения ремонтопригодности.

Оба эти разделителя панели в сетке. Затем вы можете присвоить весам размера столбцам и строкам.

2

Box layout set to Y Axis OR Grid bag layout.

В макете сетки вы можете установить «вес» в любом случае. Это тот, который поможет вам в 30%. 10% вещь

+0

Спасибо. Я попробовал BoxLayout, но проблема, с которой я столкнулся, заключается в том, что все компоненты равны высотам. –

+0

@TomTucker: Затем вам нужно перемещаться с помощью GridBag Layout. Там вы можете делать то, что вам нужно, с опцией «вес». –

Смежные вопросы