6.3 Компоненты AWT
Компонент - это то, что может быть помещено в интерфейс пользователя и может быть сделано видимым или изменяемым.
6.3.1 Компонент List
Обычно используемые примеры компонентов - textfield, label, checkbox, textarea и т.д. Есть также расширенные компоненты подобно scrollbar, scrollpan, dialog, которые обычно не используются.
6.3.2 Как вставлять компоненты?
Давайте подробно рассмотрим некоторые из обычно используемых компонентов.
Label
Метка вообще используется, чтобы указать назначение (название) элемента. Точно так же метки в GUI указывают назначение других GUI элементов подобно textbox, listbox и т.д. Они не являются доступными для редактирования пользователям и вообще используются, чтобы указать назначение других компонентов на экране. Например, если мы просто размещаем textbox на экране, ожидая от пользователя, когда он введёт название, как пользователь может узнать, что он должен вводить в элемент textbox? В таком случае, если бы мы использовали метку «Название» рядом с textbox, было бы очень просто понимать цель текстового поля.
Класс Label в Java используется, чтобы создать текстовую метку на экране. Метки могут быть созданы, используя один из следующих конструкторов:
■ Label () : Создает пустую метку
■ Label (String label text) : Создаёт метку с данным текстом
■ Label(String labeltext, int alignment): Создаёт метку С данным выравниванием, где выравнивание может быть Label.LEFT, Label.RIGHT или Label.CENTER.
Рассмотрим обычно используемые методы Label:
Метод |
Цель |
void setFont (Font f) |
Изменяет существующий шрифт метки |
void setText (String s) |
Текст метки |
String getText () |
Находит текст метки |
Textfield
Текстовая поле - элемент GUI, который позволяет нам вводить текст. Текстовое поле вообще принимает только одну линию ввода; для многострочного ввода мы используем элемент textarea.
В Java, чтобы создать текстовое поле может использоваться любой из следующих конструкторов:
■ TextField () : Создаёт новое текстовое поле
■ TextField (int columns) : Создаёт новое текстовое поле с заданным числом столбцов
■ TextField (string s) : Создаёт новое текстовое поле с заданной строкой
■ TextField (string s, int columns): Создаёт новое текстовое поле с заданной строкой и заданным числом столбцов.
Рассмотрим обычно используемые методы объекта Textfield:
Метод |
Цель |
void setEchoChar(char с) |
Устанавливает символы, которые отображены в форме данного символа |
void setText(String s) |
Устанавливает текст в элементе TexfField |
String getText() |
Находит текст в TexfField |
void setEditable(boolean b) |
Определяет, может ли поле быть отредактировано.Если возвращает true, то поле может редактироваться; если false то наоборот |
boolean isEditable() |
Определяет, может ли поле быть отредактировано. Возвращает true если да и false если нет. |
Мы можем создавать метки или текстовые поля также применяя подход "drag and drop" в среде RAD (Rapid Application Development) или используя код на языке программирования. Шаги, чтобы использовать эти компоненты следующие:
1. Создайте элемент (label/textfield).
2. Установите начальный размер (в случае необходимости)
3. Решите, где нужно поместить его на экране и разместите.
Пример 3 показывает как использовать текстовые поля и метки.
Пример 3:
import j ava.awt.*;
class TextLabelDemo extends Frame {
TextField txtName=new TextField(2 0);
Label lblName=new Label ( Name : );
public TextLabelDemo (String title) {
super(title);
setLayout(new FlowLayout());
add(lblName);
add(txtName);
}
public static void main(String args[]) {
TextLabelDemo t=new TextLabelDemo( Testing components! );
t.setSize (500,500) ;
t.show();
}
}
Мы использовали метод setLayout (), чтобы изменить размещение компонентов на экране. Менеджер компановки определяет, как компоненты будут размещены в пределах контейнера. Есть различные виды размещений, которые мы рассмотрим в более позднем разделе. Фрейм, по умолчанию, имеет BorderLayout, который упорядочивает компоненты на восток, запад, север, и южные направления.
Вывод примера дан на рисунке 6.4:
Рисунок 6.4: Вывод примера 3