Из Википедии, свободной энциклопедии
Перейти к навигации Перейти к поиску

Менеджеры компоновки - это программные компоненты, используемые в наборах инструментов виджетов, которые имеют возможность размещать графические элементы управления по их относительному положению без использования единиц расстояния. Часто более естественно определять компоновки компонентов таким образом, чем определять их положение в пикселях или общих единицах расстояния, поэтому ряд популярных наборов инструментов для виджетов по умолчанию включает эту возможность. Наборы инструментов для виджетов, которые предоставляют эту функцию, обычно можно разделить на две группы:

  • Те, где поведение макета закодировано в специальных графических контейнерах . Так обстоит дело в XUL и инструментарии виджетов .NET Framework (как в Windows Forms, так и в XAML ).
  • Те, где поведение макета закодировано в менеджерах макета, которые могут применяться к любому графическому контейнеру. Так обстоит дело с набором инструментов виджетов Swing, который является частью Java API .

Примеры [ править ]

XUL [ править ]

В XUL , как контейнер vbox, для наложения компонентов друг на друга.

<? xml version = "1.0"?> <? xml-stylesheet href = "chrome: // global / skin /" type = "text / css"?><window  id = "vbox example"  title = "Example"  xmlns = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" ><vbox>  <button  id = "yes"  label = "Да" />  <button  id = "no"  label = "Нет" />  <button  id = "возможно"  label = "Может быть" /> </vbox></window>

Этот фрагмент кода показывает 3 кнопки, расположенные друг над другом в вертикальном поле.

XAML [ править ]

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 текстовых блока друг над другом.

Java [ править ]

FlowLayoutМенеджер компоновки упорядочивает компоненты направленного потока, как и строка текста в абзаце. Компоненты располагаются по горизонтали до тех пор, пока не перестанут умещаться компоненты на одной линии, а затем они размещаются на другой линии. Другими менеджерами компоновки являются менеджеры GridLayout, которые упорядочивают компоненты в виде сетки, и менеджеры BorderLayout, которые также размещают компонент в пяти частях кадра, а именно: юг, север, запад, восток и центр.

import  javax.swing.JFrame ; import  javax.swing.JButton ; import  java.awt.FlowLayout ; import  java.awt.Container ;общедоступный  класс  Пример  {  частный  фрейм JFrame  ; public  Example ()  {  frame  =  new  JFrame ( "FlowLayout Demo" );  рамка . setDefaultCloseOperation ( фрейм . EXIT_ON_CLOSE );  рамка . setLayout ( новый  FlowLayout ());  рамка . добавить (( новый  JButton ( "Кнопка 1" )));  рамка . добавить (( новый  JButton ( "Кнопка 2" )));  рамка . добавить (( новый JButton ( «Кнопка 3» )));  рамка . add (( новый  JButton ( "Кнопка с длинным именем 4" )));  рамка . добавить (( новый  JButton ( "5" )));  рамка . pack ();  рамка . setVisible ( правда );  } public  static  void  main ( String []  args )  {  Пример  ex  =  new  Example ();  } }

Этот код показывает 5 кнопок рядом друг с другом в одной строке:

Пример FlowLayout

Внешние ссылки [ править ]