Иллюстрированный самоучитель по Java
ГЛАВА 10
Основные компоненты
Графическая библиотека AWT предлагает
более двадцати готовых компонентов. Они показаны на рис. 8.2. Наиболее часто
используются подклассы класса Component: классы Button, Canvas, Checkbox, Choice,
Container, Label, List, Scrollbar, TextArea, TextField, Panel, ScrollPane, Window,
Dialog, FileDialog, Frame.
Еще одна группа компонентов — это
компоненты меню — классы Menuitem, MenuBar, Menu, PopupMenu, CheckboxMenuItem.
Мы рассмотрим ИХ В
главе 13.
Забегая вперед, для каждого компонента
перечислим события, которые в нем происходят. Обработку событий мы разберем
в
главе 12.
Начнем изучать эти компоненты от
простых компонентов к сложным и от наиболее часто используемых к применяемым
реже. Но сначала посмотрим на то общее, что есть во всех этих компонентах, на
сам класс component.
Класс
Component
Класс component — центр библиотеки
AWT — очень велик и обладает большими возможностями. В нем пять статических
констант, определяющих размещение компонента внутри пространства, выделенного
для компонента в содержащем его контейнере: BOTTOM_ALIGNMENT, CENTER_ALIGNMENT,
LEFT_ALIGNMENT, RIGHT_ALIGNMENT,
TOP_ALIGNMENT, И ОКОЛО СОТНИ МеТОДОВ.
Большинство методов— это методы
доступа getxxx(), isxxx(), setxxx(). Изучать их нет смысла, надо просто посмотреть,
как они используются в подклассах.
Конструктор класса недоступен —
он защищенный (protected), потому, что класс component абстрактный, он не может
использоваться сам по себе, применяются только его подклассы.
Компонент всегда занимает прямоугольную
область со сторонами, параллельными сторонам экрана и в каждый момент времени
имеет определенные размеры, измеряемые в пикселах, которые можно узнать методом
getsizeo, возвращающим объект класса Dimension, или целочисленными методами
getHeighto и getwidtho, возвращающими высоту и ширину прямоугольника. Новый
размер компонента можно установить из программы методами setSize(Dimension d)
или setSize(int width, int height), если это допускает менеджер размещения контейнера,
содержащего компонент.
У компонента есть предпочтительный
размер, при котором компонент выглядит наиболее пропорционально. Его можно получить
методом getPreferredSizef) В виде объекта Dimension.
Компонент обладает минимальным и
максимальным размерами. Их возвращают методы getMinimumSize() И getMaximumSize
() В виде объекта Dimension.
В компоненте есть система координат.
Ее начало — точка с координатами (0, 0) — находится в левом верхнем углу компонента,
ось Ох идет вправо, ось Оу — вниз, координатные точки расположены между пикселами.
В компоненте хранятся координаты
его левого верхнего угла в системе координат объемлющего контейнера. Их можно
узнать методами getLocation (), а изменить — методами setLocationO, переместив
компонент в контейнере, если это позволит менеджер размещения компонентов.
Можно выяснить сразу и положение,
и размер прямоугольной области компонента методом getBounds (), возвращающим
объект класса Rectangle, и изменить разом и положение, и размер компонента методами
setBounds (), если это позволит сделать менеджер размещения.
Компонент может быть недоступен
для действий пользователя, тогда он выделяется на экране обычно светло-серым
цветом. Доступность компонента можно проверить логическим методом isEnabiedo,
а изменить— методом
setEnabled(boolean enable).
Для многих компонентов определяется
графический контекст — объект класса Graphics, — который управляется методом
paint (), описанным в предыдущей главе, и который можно получить методом getGraphics
().
В контексте есть текущий цвет и
цвет фона — объекты класса color. Цвет фона можно получить методом getBackground{),
а изменить— методом setBackground(Color color). Текущий цвет можно получить
методом getForeground(), а изменить — методом setForeground(Color color).
В контексте есть шрифт — объект
класса Font, возвращаемый методом
getFont() И изменяемый Методом setFont(Font
font) .
В компоненте определяется локаль
— объект класса Locale. Его можно получить методом getLocale(), изменить — методом
setLocale(Locale locale).
В компоненте существует курсор,
показывающий положение мыши, — объект класса Cursor. Его можно получить методом
getcursor (), изменяется форма курсора в "тяжелых" компонентах с помощью
метода setcursor(Cursor cursor). Остановимся на этом классе подробнее.