Режим CardLayout
Режим CardLayout предназначен для создания набора диалоговых панелей, которые можно показывать по очереди в одном окне прямоугольной формы. Обычно для управления процессом перебора диалоговых панелей в режиме CardLayout используются отдельные органы управления, расположенные в другой панели или даже в другом аплете на той же самой странице сервера WWW. Пример такого аплета мы приведем после того как рассмотрим использование класса Panel.
Класс CardLayout содержит два конструктора и несколько методов:
public class java.awt.CardLayout
extends java.lang.Object
implements java.awt.LayoutManager
{
// -----------------------------------------------------
// Конструкторы
// -----------------------------------------------------
// Режим без зазоров
public CardLayout();
// Режим с зазорами по вертикали и горизонтали
// между компонентами и окном контейнера
public CardLayout(int hgap, int vgap);
// -----------------------------------------------------
// Методы
// -----------------------------------------------------
// Добавление компоненты с указанием имени
public void addLayoutComponent(String name,
Component comp);
// Отображение первой страницы блокнота
public void first(Container target);
// Отображение последней страницы блокнота
public void last(Container target);
// Отображение следующей страницы блокнота
public void next(Container target);
// Отображение предыдущей страницы блокнота
public void previous(Container target);
// Выполнение размещения компонент
public void layoutContainer(Container target);
// Определение минимальных размеров окна,
// необходимых для размещения компонент
public Dimension minimumLayoutSize(Container target);
// Определение предпочтительных размеров окна,
// необходимых для размещения компонент
public Dimension preferredLayoutSize(Container target);
// Удаление заданной компоненты
public void removeLayoutComponent(Component comp);
// Отображение произвольной страницы блокнота
// по ее имени
public void show(Container target, String name);
// Получение текстовой строки названия режима размещения
public String toString();
}
Как пользоваться режимом размещения CardLayout?
Обычно в окне аплета создается две панели, одна из которых предназначена для отображения страниц блокнота в режиме размещения CardLayout, а вторая содержит органы управления перелистыванием страниц, например, кнопки.
Такие методы, как first, last, next и previous позволяют отображать, соответственно, первую, последнюю, следующую и предыдущую страницу блокнота. Если вызвать метод next при отображении последней страницы, в окне появится первая страница. Аналогично, при вызове метода previous для первой страницы блокнота вы увидите последнюю страницу.
А как отобразить произвольную страницу, не перебирая их по одной методами next и previous?
Для этого существует метод show. Учтите, что этот метод позволяет отображать только такие страницы, при добавлении которых методом add было указано имя, например:
pCardPanel.add("BackgroundColor", pBackgroundColor);
pCardPanel.add("ForegroundColor", pForegroundColor);
pCardPanel.add("Font", pFont);
Здесь в панель pCardPanel добавляются панели pBackgroundColor, pForegroundColor и pFont, имеющие имена, соответственно, "BackgroundColor", "ForegroundColor" и "Font".