- •Лабораторная работа 3
- •Краткие теоретические сведения
- •Компоненты Java
- •Элементы управления
- •Флажки (или переключатели)
- •Комбобокс (или выпадающие списки)
- •Полосы прокрутки
- •Текстовые компоненты
- •Контейнеры
- •Рамки, фреймы
- •Обработка событий фрейма в Java 1.1
- •Контекстные меню
- •Диалоги
- •Файловые диалоги
- •Менеджеры размещения компонентов
- •Типы менеджеров размещения
- •Выбор менеджера размещения
Компоненты Java
Все элементы управления в Java основаны на классе Component. Всякий графический вывод на экран связан (прямо или косвенно) с компонентом. Например, в силу того, что апплеты фактически являются потомками класса Component, имеется возможность рисовать прямо в апплете, не прибегая для этого к специальным методам.
Класс Component содержит очень много методов для обеспечения работы с компонентом GUI.
Некоторые методы класса Component:
getParent - Получает объект-владелец компонента
isShowing - Проверяет, является ли компонент видимым
isEnabled - Проверяет, является ли компонент разрешенным
location - Возвращает текущее положение компонента
size - Возвращает текущий размер компонента
bounds - Возвращает текущие границы компонента
enable - Разрешает компонент
disable - Запрещает компонент
show - Отображает компонент
hide - Скрывает компонент
getForeground - Получает текущий цвет переднего плана
setForeground - Устанавливает текущий цвет переднего плана
getBackground - Получает текущий цвет фона
setBackground - Устанавливает текущий цвет фона
getFont - Получает текущий шрифт
setFont - Устанавливает текущий шрифт
move - Перемещает компонент в новое положение (в системе координат предка)
resize - Изменяет ширину и высоту компонента
reshape - Изменяет форму компонента (положение, высоту и ширину)
prefferedSize - Возвращает предпочтительный размер компонента
minimumSize - Возвращает минимальный размер компонента
getGraphics - Получает графический контекст компонента
getFontMetrics - Получает типографские параметры текущего шрифта
paint - Отвечает за рисование компонента
update - Отвечает за обновление компонента, вызывается методом repaint()
paintAll - Отвечает за рисование компонента и его подкомпонентов
repaint - Вызывает перерисовку компонента. Этот метод вызывает метод update()
print - Отвечает за печать компонента
imageUpdate - Отвечает за перерисовку компонента при изменении выводимого в компоненте изображения типа Image
createImage - Создает изображение
prepareImage - Подготавливает изображение типа Image для визуализации
checkImage - Возвращает состояние создания экранного представления изображения
inside - Проверяет, находится ли заданная точка “внутри” компонента
locate - Возвращает компонент, содержащий заданную точку
deliverEvent - Доставляет событие компоненту
postEvent - Пересылает событие компоненту, в результате чего вызывается метод handleEvent()
handleEvent - Отвечает за обработку события. Если метод возвращает false, то событие передается предку компонента
mouseDown, mouseDrag, mouseUp, mouseMove, mouseEnter, mouseExit - Отвечают за обработку соответствующих событий мыши
keyUp, keyDown - Отвечают за обработку соответствующих событий клавиатуры
action - вызывается в том случае, если в компоненте происходит некоторое действие
gotFocus - Указывает на то, что компонент получил фокус ввода
lostFocus - Указывает на то, что компонент потерял фокус ввода
requestFocus - Запрашивает фокус ввод
nextFocus - Передает фокус следующему компоненту
Этими методами могут пользоваться все наследуемые от класса Component классы GUI - все элементы управления и класс контейнеров. Эти компоненты GUI имеют следующие деревья наследования:
Object -> Component -> Button
Object ->Component -> CheckBox
Object -> Component -> Choice
Object -> Component -> List
Object -> Component -> Scrollbar
Object -> Component -> Label
Object -> Component -> Canvas
Object -> Component -> TextComponent
Object -> Component -> TextComponent -> TextField
Object -> Component -> TextComponent -> TextArea
Object -> Component -> Container
Для того чтобы нарисовать изображение, вывести некоторый текст или разместить элемент пользовательского интерфейса на экране, должен использоваться контейнер класса Container или его подкласса. Контейнеры - это объекты, которые содержат компоненты. А компоненты - это объекты, которые наследуют от класса Component: кнопки, полосы прокрутки, другие элементы управления. Контейнеры сами являются подклассами Component, что подразумевает возможность их вложения или размещения внутри друг друга.
Так, например, класс Applet является подклассом Panel, который в свою очередь является подклассом Container, а тот - подклассом Component. Поэтому все апплеты умеют вводить и отображать компоненты. Нужно просто создать компонент и ввести его в апплет.