Менеджеры макетов — это программные компоненты, используемые в наборах инструментов для виджетов , которые имеют возможность размещать графические элементы управления по их относительным позициям без использования единиц измерения расстояния. Часто бывает более естественно определять макеты компонентов таким образом, чем определять их положение в пикселях или обычных единицах измерения расстояния, поэтому ряд популярных наборов инструментов для виджетов включают эту возможность по умолчанию. Наборы инструментов для виджетов, которые предоставляют эту функцию, можно в целом разделить на две группы:
В XUL , как и контейнер vbox, позволяет размещать компоненты друг над другом.
<?xml версия="1.0"?> <?xml-stylesheet href="chrome://global/skin/" тип="text/css"?><window id= "пример vbox" title= "Пример" xmlns= "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" > <vbox> <button id= "yes" label= "Да" /> <button id= "no" label= "Нет" /> <button id= "maybe" label= "Может быть" /> </vbox> </окно>
В этом фрагменте кода показаны три кнопки, расположенные друг над другом в вертикальном блоке.
Контейнер DockPanel размещает дочерние компоненты в соответствии с их свойствами Dock .
<Page xmlns= "http://schemas.microsoft.com/winfx/2006/xaml/presentation" WindowTitle= "myDock Panel" > <DockPanel> <TextBlock DockPanel.Dock= "Top" > Верхний 1 </TextBlock> <TextBlock DockPanel.Dock= "Top" > Верхний 2 </TextBlock> <TextBlock DockPanel.Dock= "Top" > Верхний 3 </TextBlock> <TextBlock DockPanel.Dock= " Top" > Верхний 4 </TextBlock> </DockPanel> </Page>
Этот код показывает 4 текстовых блока друг над другом.
Менеджер FlowLayout
макета размещает компоненты в направленном потоке, подобно строкам текста в абзаце. Он размещает компоненты горизонтально до тех пор, пока больше компонентов не поместятся на одной строке, затем он размещает их на другой строке. Другие менеджеры макета — это менеджеры GridLayout, которые размещают компоненты в виде сетки, и менеджеры BorderLayout, которые также размещают компонент в пяти частях кадра, таким образом: юг, север, запад, восток и центр.
импорт javax.swing.JFrame ; импорт javax.swing.JButton ; импорт java.awt.FlowLayout ; импорт java.awt.Container ; Пример открытого класса { частный кадр JFrame ; public Example () { frame = new JFrame ( " FlowLayout Demo" ); frame.setDefaultCloseOperation ( JFrame.EXIT_ON_CLOSE ) ; frame.setLayout ( new FlowLayout ( ) ); frame.add ( ( new JButton ( " Button 1" ))); frame.add ( ( new JButton ( " Button 2" ) )); frame.add (( new JButton ( "Button 3" ) )); frame.add ( ( new JButton ( "Long-Named Button 4" ) ) ) ; frame.add ( ( new JButton ( " 5" ))) ; frame.pack ( ) ; frame.setVisible ( true ) ; } public static void main ( String [] args ) { Пример ex = новый Пример (); } }
В этом коде показано 5 кнопок, расположенных рядом друг с другом на одной строке: