Описание тега layout-manager
LayoutManager
это интерфейс Java для классов, которые знают, как разметить содержимое Container
. Типичные контейнеры включаютJPanel
для Swing и Panel
для AWT, но многие другие (например, Window
) возможны.
Диспетчер компоновки размещает компоненты контейнера в соответствии с правилами, которые различны для каждой реализации. Например,GridLayout
размещает компоненты в виде таблицы, а BorderLayout
помещает один в центр и до четырех других на каждом краю.
Хотя менеджеры по оформлению часто звонят getPreferredSize
на компоненте, чтобы узнать, сколько места ему потребуется, подсказки размера также регулярно игнорируются. EG вGridLayout
все компоненты становятся размером наибольшей ширины и высоты, в BorderLayout
в CENTER
компонент будет растянут до доступного пространства, верх / низ будет растянут по ширине, а начало / конец строки будет растянуто по высоте).
Макеты обычно комбинируются для создания сложных графических интерфейсов. EG, как показано в примере вложенного макета.
Если для менеджера компоновки какого-либо конкретного компонента установлено значение null
, компоненты можно расположить произвольно, задав их границы вручную. Это вызывает множество проблем, и первым шагом в решении этих проблем обычно является "установка макета".
Существующие менеджеры компоновки
AWT
-
BorderLayout
. ОбеспечиваетCENTER
& 4 границы для размещения компонентов. -
CardLayout
хорошо подходит для замены многих компонентов или представлений в одном родительском контейнере. -
FlowLayout
самый простой в использовании, размещает компоненты один за другим, слева направо, сверху вниз. Обычно подходит только для одиночных рядов компонентов. -
GridBagLayout
может легко выполнять некоторые простые задачи (например, "центрировать в нужном размере"), но также позволяет создавать сложные макеты. -
GridLayout
предоставляет сетку пространств компонентов (Ш x В) одинакового размера.
Качели
-
BoxLayout
предоставляет конструкцию типа "коробку" для добавления компонентов в строку или столбец. -
GroupLayout
является мощным, позволяющим выравнивать компоненты и группы компонентов, но обычно считается макетом для использования в IDE. -
OverlayLayout
позволяет штабелировать компоненты. -
ScrollPaneLayout
Используется внутри других компонентов Swing. -
SpringLayout
это способ размещения компонентов с пробелом, позволяющий выравнивать компоненты по краям. -
ViewportLayout
Используется внутри других компонентов Swing.
Третья сторона
-
MigLayout
высоко ценится. -
FormLayout
часть форм JGoodies -
TableLayout
- АльтернативаGridBagLayout