Режим CardLayout предназначен для создания набора диалоговых панелей, которые можно показывать по очереди в одном окне прямоугольной формы. Обычно для управления процессом перебора диалоговых панелей в режиме CardLayout используются отдельные органы управления, расположенные в другой панели или даже в другом аплете на той же самой странице сервера Web.

Класс CardLayout содержит два конструктора и несколько методов.

Конструкторы класса CardLayout

Режим без зазоров

public CardLayout();

Режим с зазорами по вертикали и горизонтали между компонентами и окном контейнера

public CardLayout(int hgap, int vgap);

Методы класса CardLayout

  • addLayoutComponent

Добавление компоненты с указанием имени

public void addLayoutComponent(
  String name, Component comp);
  • first

Отображение первой страницы блокнота

public void first(Container target);
  • last

Отображение последней страницы блокнота

public void last(Container target);
  • next

Отображение следующей страницы блокнота

public void next(Container target);
  • previous

Отображение предыдущей страницы блокнота

public void previous(Container target);
  • layoutContainer

Выполнение размещения компонент

public void layoutContainer(
  Container target);
  • minimumLayoutSize

Определение минимальных размеров окна, необходимых для размещения компонент

public Dimension minimumLayoutSize(
  Container target);
  • preferredLayoutSize

Определение предпочтительных размеров окна, необходимых для размещения компонент

public Dimension preferredLayoutSize(
  Container target);
  • removeLayoutComponent

Удаление заданной компоненты

public void removeLayoutComponent(
  Component comp);
  • show

Отображение произвольной страницы блокнота по ее имени

public void show(
  Container target, String name);
  • toString

Получение текстовой строки названия режима размещения

public String toString();

Использование режима размещения CardLayout

Как пользоваться режимом размещения 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".