Менеджери розміщення в java, блог про шифрування

Перед використанням керуючих компонентів (наприклад, кнопок) їх треба розташувати на формі в потрібному порядку. Замість ручного розташування застосовуються менеджери розміщення, що визначають спосіб, який панель використовує для завдання порядку розміщення керуючого елемента на формі. Менеджери розміщення контролюють, як виконується позиціонування компонентів, що додаються в вікна, а також їх впорядкування. Якщо користувач змінює розмір вікна, менеджер розміщення переупорядочівать компоненти в новій області так, щоб вони залишалися видимими і в той же час зберегли свої позиції відносно один одного.

Менеджер розміщення являє собою один з класів FlowLayout. BorderLayout. GridLayout. CardLayout. BoxLayout. реалізують інтерфейс LayoutManager. встановлює розміщення.

Клас FlowLayout - менеджер потокової компонування. При цьому компо-ненти розміщуються від лівого верхнього кута вікна, зліва направо і зверху вниз, як і звичайний текст. Цей менеджер використовується за умовчанням при додаванні компонентів в аплети. При використанні бібліотеки AWT менеджер FlowLayout є клас, оголошений наступним чином:

public class FlowLayout extends Object

implements LayoutManager, Serializable<>

У наступному прикладі демонструються можливості потокової компонування різних елементів управління.

/ * Приклад # 1. потокова компоновка по центру: FlowLayoutEx.java * /

publicclass FlowLayoutEx extends JApplet

private Component c [] = new Component [9];

// установка менеджера розміщень

setForeground (Color.getHSBColor (1f, 1f, 1f));

for (int i = 0; i c [i] = new JButton (str [i]);

c [i + 3] = new JLabel (msg [i]);

c [i + 6] = new JTextField (txt [i]);

Перевантажується метод add (Component ob). визначений у класі java.awt.Container (підкласі Component), додає компоненти JButton. JLabel. JTextField до вікна і промальовує їх всякий раз, коли вікно відображається на екран.

Метод setLayout (LayoutManager mgr) встановлює менеджер розміщення для даного контейнера. Результати роботи аплету наведені на малюнку.

Менеджери розміщення в java, блог про шифрування

Мал. 13.1. Розміщення компонентів FlowLayout

Менеджер GridLayout розділяє форму на задану кількість рядів і колонок. На відміну від нього компоновка BoxLayout розміщує кілька компонентів по вертикалі або горизонталі. На спосіб розташування компонентів зміна розмірів форми не впливає.

/ * Приклад # 2. компоновка в табличному вигляді: GridLayoutEx.java * /

publicclass GridLayoutEx extends JApplet

private Component b [] = new Component [7];

for (int i = 0; i

add ((b [i] = new JButton ( "(" + i + ")")));

Мал. 13.2. Розміщення компонентів GridLayout

Менеджер BorderLayout дозволяє позиціонувати елементи і групи з них в областях фіксованого розміру, що межують зі сторонами фрейму, які позначаються параметрами сторонами світла: NORTH. SOUTH. EAST. WEST. Інший простір позначається як CENTER.

/ * Приклад # 3. фіксована компоновка по областям:

import javax.swing.JToggleButton; // «западає» кнопка

publicclass BorderGridLayoutDemo extends JFrame

Container c = getContentPane ();

c.add (new JToggleButton ( "- 1"), BorderLayout.WEST);

c.add (new JToggleButton ( "- 2"), BorderLayout.SOUTH);

c.add (new JToggleButton ( "- 3"), BorderLayout.EAST);

JPanel jPanel = new JPanel ();

jPanel.setLayout (new GridLayout (2, 4));

jPanel.add (new JButton ( "" + i));

publicstaticvoid main (String [] args)

fr.setTitle ( "Border Grid Layouts Example ");

Менеджери розміщення в java, блог про шифрування

Мал. 13.3. Розміщення компонентів BorderLayout і GridLayout

Компонування BoxLayout дозволяє групувати елементи в підгалузях фрейма в рядки і стовпці. Можливості класу Box дозволяють розміщувати компоненти в рамці, орієнтованої горизонтально або вертикально.

/ * Приклад # 4. компоновка в групах з орієнтацією: BoxLayoutDemo.java * /

Схожі статті