Менеджер по макетам
Менеджеры макетов — это программные компоненты, используемые в наборах инструментов виджетов , которые имеют возможность размещать графические элементы управления по их относительному положению без использования единиц измерения расстояния. Зачастую более естественно определять макеты компонентов таким образом, чем определять их положение в пикселях или обычных единицах расстояния, поэтому ряд популярных наборов инструментов для виджетов включают эту возможность по умолчанию. Наборы инструментов виджетов, обеспечивающие эту функцию, обычно можно разделить на две группы:
- Те, где поведение макета закодировано в специальных графических контейнерах . Так обстоит дело в XUL и наборе инструментов виджетов .NET Framework (как в Windows Forms , так и в XAML ).
- Те, в которых поведение макета закодировано в менеджерах макетов, которые можно применять к любому графическому контейнеру. Именно так обстоит дело с набором инструментов виджетов Swing , который является частью Java API .
Примеры
[ редактировать ]ВЫБИРАТЬ
[ редактировать ]В 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="Yes"/>
<button id="no" label="No"/>
<button id="maybe" label="Maybe"/>
</vbox>
</window>
Этот фрагмент кода показывает три кнопки, расположенные друг над другом в вертикальном блоке.
XAML
[ редактировать ]Контейнер DockPanel размещает дочерние компоненты в соответствии с их свойствами Dock .
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
WindowTitle="myDock Panel">
<DockPanel>
<TextBlock DockPanel.Dock="Top">Top 1</TextBlock>
<TextBlock DockPanel.Dock="Top">Top 2</TextBlock>
<TextBlock DockPanel.Dock="Top">Top 3</TextBlock>
<TextBlock DockPanel.Dock="Top">Top 4</TextBlock>
</DockPanel>
</Page>
Этот код показывает 4 текстовых блока друг над другом.
Ява
[ редактировать ]The FlowLayout
Менеджер компоновки упорядочивает компоненты в направленном потоке, подобно строкам текста в абзаце. Он располагает компоненты горизонтально до тех пор, пока компоненты не перестанут помещаться на одной линии, а затем помещает их на другую линию. Другими менеджерами компоновки являются менеджеры GridLayout, которые размещают компоненты в виде сетки, и менеджеры BorderLayout, которые также размещают компонент в пяти частях кадра, например: юг, север, запад, восток и центр.
import javax.swing.JFrame;
import javax.swing.JButton;
import java.awt.FlowLayout;
import java.awt.Container;
public class Example {
private JFrame frame;
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) {
Example ex = new Example();
}
}
Этот код показывает 5 кнопок рядом друг с другом в одной строке: