Менеджеры компоновки являются программными компонентами используется в наборах инструментов виджетов , которые имеют возможность размещать графические элементы управления по их относительному положению без использования единиц расстояния. Часто более естественно определять компоновки компонентов таким образом, чем определять их положение в пикселях или общих единицах расстояния, поэтому ряд популярных наборов инструментов виджетов включает эту возможность по умолчанию. Наборы инструментов виджетов, которые предоставляют эту функцию, обычно можно разделить на две группы:
В XUL, например vbox контейнер для наложения компонентов друг на друга.
Этот фрагмент кода показывает 3 кнопки, расположенные друг над другом в вертикальном блоке.
Контейнер DockPanel размещает дочерние компоненты в соответствии с их свойствами Dock.
Верх 1 Верх 2 Верх 3 Верх 4
В этом коде 4 текстовых блока расположены друг над другом.
Менеджер компоновки FlowLayout
размещает компоненты в направленном потоке, как строки текста в абзаце. Располагает компоненты по горизонтали. lly до тех пор, пока не перестанут умещаться компоненты на одной строке, а затем он помещает их на другую строку. Другими менеджерами компоновки являются менеджеры GridLayout, которые упорядочивают компоненты в виде сетки, и менеджеры BorderLayout, которые также размещают компонент в пяти частях кадра, а именно: юг, север, запад, восток и центр.
импорт javax.swing.JFrame; import javax.swing.JButton; import java.awt.FlowLayout; import java.awt.Container; публичный класс Пример {частный кадр JFrame; общедоступный пример () {кадр = новый JFrame ("Демо FlowLayout"); frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); frame.setLayout (новый FlowLayout ()); frame.add ((новый JButton ("Кнопка 1"))); frame.add ((новый JButton ("Кнопка 2"))); frame.add ((новый JButton ("Кнопка 3"))); frame.add ((новый JButton ("Кнопка с длинным именем 4"))); frame.add ((новый JButton ("5"))); frame.pack (); frame.setVisible (правда); } public static void main (String args) {Example ex = new Example (); }}
Этот код показывает 5 кнопок рядом друг с другом на одной строке: