Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры-2 оопип часть 4.doc
Скачиваний:
46
Добавлен:
01.04.2014
Размер:
445.44 Кб
Скачать

54. Наследники класса Component

В AWT объекты называются компонентами (на самом деле они все являются наследниками класса Component), а группы объектов реализованы с помощью так называемых

контейнеров. Отметим, что любой контейнер - это тоже компонента, поэтому

группы объектов могут быть вложены друг в друга. Как обычно, меню стоят

особняком. Иерархия компонент показана ниже.

К числу примитивных компонент относятся:

* Button

* Checkbox

* Label

* List

* ScrollBar

* TextArea

* TextField

Абстрактный класс Component является базовым для всех компонент AWT и описывает их основные свойства. Визуальный компонент в AWT имеет прямоугольную форму, может быть отображен на экране и может взаимодействовать с пользователем.

Рассмотрим основные свойства этого класса.

1. Положение компонента описывается двумя целыми числами (тип int) x и y. В Java (как и во многих языках программирования) ось x проходит традиционно – горизонтально, направлена вправо, а ось у – вертикально, но направлена вниз, а не вверх, как принято в математике.

2. Размер Как было сказано, компонент AWT имеет прямоугольную форму, а потому его размер описывается также двумя целочисленными параметрами – width (ширина) и height (высота). Для описания размера существует специальный класс Dimension (размер), в котором определено два public int поля width и height, а также вспомогательные методы.

3. Видимость. Существующий компонент может быть как виден пользователю, так и быть скрытым. Это свойство описывается булевским параметром visible. Методы для управления – setVisible, принимающий булевский параметр, и isVisible, возвращающий текущее значение.

4. Доступность. Даже если компонент отображается на экране и виден пользователю, он может не взаимодействовать с ним. В результате события от клавиатуры, или мыши не будут получаться и обрабатываться компонентом. Такой компонент называется disabled. Если же компонент активен, его называют enabled. Как правило, компонент некоторым образом меняет свой внешний вид, когда становится недоступным (например, становится серым, менее заметным), но, вообще говоря, это необязательно (хотя очень удобно для пользователя).

5. Цвета. Для задания цвета в AWT используется специальный класс Color. Цвет задается 3 целочисленными характеристиками, соответствующими модели RGB, – красный, синий, зеленый. Каждая из них может иметь значение от 0 до 255 (тем не менее, их тип определен как int). В результате (0, 0, 0) соответствует черному, а (255, 255, 255) – белому.

6. Шрифт. Для задания шрифта в AWT существует специальный класс Font, который включает в себя три параметра – имя шрифта, размер и стиль.

Класс Component служит в качестве базового класса для класса Container. Объекты этого класса, которые мы будем называть контейнерами, могут содержать объекты классов Component и Container. Таким образом, внутри контейнеров могут находиться компоненты и другие контейнеры.

55. Классы Choice и List

На базе класса Choice вы можете создать списки типа Drop Down или, как их еще называют, "выпадающие" списки. Такой список выглядит как текстовое поле высотой в одну строку, справа от которого располагается кнопка (рис. 3).

Если нажать на эту кнопку, список раскроется и вы сможете сделать выбор из его элементов (рис.

В списке класса Choice одновременно можно выбрать только один элемент.

Класс Choice

Приведем описание прототипов конструктора и методов класса Choice:

Конструктор

public Choice();

Методы

a)addItem - Добавление элемента в список

public void addItem(String item);

b)addNotify - Вызов метода createChoice

public void addNotify();

c)countItems - Определение количества элементов в списке

public int countItems();

getItem -Получение строки списка по номеру соответствующего ему элемента списка

public String getItem(int index);

Создание списков

Конструктор класса Choice не имеет параметров. Создание списка с его помощью не вызовет у вас никаких затруднений:

Choice chBackgroundColor;

chBackgroundColor = new Choice();

Для наполнения списка используйте метод addItem. В качестве параметра ему необходимо передать текстовую строку, которая будет связана с добавляемым элементом списка:

chBackgroundColor.addItem("Yellow");

Далее список можно добавить в окно аплета как компонент с помощью метода add:

add(chBackgroundColor);

Заметим, что список можно заполнять до или после добавления в окно аплета.

После наполнения списка по умолчанию выделяется элемент, который был добавлен в список первым. При помощи метода select вы можете выделить любой элемент списка по его номеру или строке, связанной с элементом.

Списки класса List

На базе класса List вы можете сделать список другого типа, который допускает выбор не только одного, но и нескольких элементов. В отличие от списка, созданного на базе класса Choice, список класса List может занимать прямоугольную область, в которой помещаются сразу несколько элементов. Этот список всегда находится в раскрытом состоянии (рис. 5).

Если размеры окна списка класса List недостаточны для того чтобы вместить в себя все элементы, в правой части окна списка автоматически создается полоса просмотра, с помощью которой можно пролистать весь список (рис. 6).

Описание класса List

В классе List определено два конструктора и довольно много различных методов. Ниже мы привели краткое описание класса List:

Конструкторы

Конструктор без параметров

public List();

Конструктор, позволяющий указать количество отображаемых строк и флаг одновременного выбора нескольких элементов

public List(int rows,

boolean multipleSelections);

Методы

public void addItem(String item); - Добавление элемента в список

public void addItem(String item, int index); Добавление элемента в список с указанием номера позиции

public void addNotify(); - Вызов метода createList

public boolean allowsMultipleSelections(); - Переключение списка в режим, при котором возможно выбирать одновременно несколько элементов

public void clear(); - Удаление из списка всех элементов

Создание списка класса List

Процесс создания списка класса List несложен:

List chBackgroundColor;

chBackgroundColor = new List(6, false);

При создании списка вы передаете конструктору количество одновременно отображаемых строк и флаг разрешения одновременного выбора нескольких строк. Если значение этого флага равно true, пользователь сможет выбирать из списка одновременно несколько строк, а если false - только одну строку.

Для наполнения списка вы можете использовать уже знакомый вам метод addItem:

chBackgroundColor.addItem("Yellow");

chBackgroundColor.addItem("Green");

chBackgroundColor.addItem("White");

Список класса List добавляется к окну аплета методом add:

add(chBackgroundColor);

В отличие от списка класса Choice, для выбора строки (или нескольких строк) из списка класса List, пользователь должен сделать двойной щелчок левой клавишей мыши по выделенному элементу (или элементам, если выделено несколько элементов). При этом событие можно обработать переопределенным методом action, как мы это делали для списка класса Choice.

Однако список класса List создает события не только при двойном щелчке, но и при выделении или отмены выделения элементов, сделанном пользователем одинарным щелчком клавиши мыши. Аплет может перехватывать и обрабатывать такие события, переопределив метод handleEvent.