Компоненты в окне аплета
Практически каждое приложение Windows, за
исключением самых простейших, имеет такие органы
управления, как меню, кнопки, поля редактирования
текстовой информации, переключатели с
независимой и зависимой фиксацией и списки.
Кроме того, приложение Windows может создавать
диалоговые панели, содержащие перечисленные
выше и другие органы управления.
В окне аплета вы также можете разместить
некоторые из перечисленных выше органов
управления, а именно:
- кнопки;
- переключатели с независимой фиксацией;
- переключатели с зависимой фиксацией;
- статические текстовые поля;
- однострочные и многострочные поля
редактирования текста;
- списки;
- полосы просмотра
Самый большой и едва ли приятный сюрприз для
вас это то, что при размещении перечисленных
органов управления в окне аплета вы не можете
задать для них точные координаты и размеры.
Размещением занимается система управления
внешним видом Layout Manager, которая располагает
органы управления по-своему. Вы, однако, можете
задавать несколько режимов размещения
(последовательное, в ячейках таблицы и так далее),
но не координаты или размеры. Это сделано для
обеспечения независимости приложений Java от
платформ, на которых они выполняются.
Органы управления создаются как объекты
классов, порожденных от класса Component (рис. 1).
Поэтому в дальнейшем мы будем называть органы
управления компонентами.
Рис. 1. Взаимосвязь классов органов
управления в приложениях Java
Класс Button позволяет создавать стандартные
кнопки. Если вам нужна нестандартная кнопка
(например, графическая кнопка), вы можете создать
ее на базе класса Canvas.
Для создания переключателей с независимой или
зависимой фиксацией предназначен класс CheckBox.
С помощью класса Label вы можете создавать в окне
аплета текстовые строки, например, надписи для
других компонент. Эти строки не редактируются
пользователем.
Класс List, как нетрудно догадаться из названия,
предназначен для создания списков.
С помощью класса Scrollbar вы можете создавать
полосы просмотра, которые используются, в
частности, могострочными полями редактирования
текста.
Класс TextComponent служит базовым для двух других
классов - TextField и TextArea. Первый из них предназначен
для создания однострочных редакторов текста,
второй - для создания многострочных редкаторов
текста.
Для того чтобы понять, как компоненты
размещаются на поверхности окна аплета системой
Layout Manager, рассмотрим другую взаимосвязь классов
Java, показанную на рис. 2.
Рис. 2. Компоненты и контейнеры
Класс Component служит в качестве базового класса
для класса Container. Объекты этого класса, которые мы
будем называть контейнерами, могут содержать
объекты классов Component и Container. Таким образом,
внутри контейнеров могут находиться компоненты
и другие контейнеры.
Класс Applet, так же как и другие классы,
произведенные от класса Container, является
контейнером. Это означает, что аплет может
содержать в себе компоненты (такие как органы
управления) и контейнеры.
Заметим, что класс Applet наследуется от класса
Container через класс Panel, в котором определены методы
системы Layout Manager. Настраивая соответствующим
образом Layout Manager, мы можем менять стратегию
размещения компонент внутри окна аплета.
В окне аплета вы можете создать несколько
объектов класса Panel (панелей), разделяющих окно на
части. Для каждой такой панели можно установить
свою стратегию размещения компонент и
контейнеров, что позволяет выполнять достаточно
сложную компоновку в окне аплета.
Теперь после такого краткого введения в
контейнеры и компоненты мы перейдем к описанию
методов создания отдельных компонент.