Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metodichka_Po_Tp.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.44 Mб
Скачать

2.6 Метки

Метки-надписи (класс Label) - это простейшие устройства. Они не порождают событий, они используются просто для размещения на экране строк текста. Преимущество использования этих элементов управления для вывода текста перед выводом текста методом drawString() класса Graphics заключается в том, что эти элементы управления (вместе с их содержимым) имеют способность перемещаться по экрану всякий раз, когда изменяется размер контейнера, содержащего эти метки.

Приведем примеры создания меток (или надписей):

// для метки задается выравнивание по левому краю

add(Label lbl1=new Label("1st string", Label.LEFT);

// для метки задается выравнивание по правому краю

add(Label lbl1=new Label("1st string", Label.RIGHT);

// для метки задается выравнивание по центру

add(Label lbl1=new Label("1st string", Label.CENTER);

Для изменения установок меток служат методы: setAlignment() - устанавливает режим выравнивания, setText() - устанавливает текст надписи. Для получения текущего режима выравнивания используется метод getAlignment(), а для определения текста надписи - метод getText().

2.7 Текстовые компоненты

Поля редактирования типа TextArea может использоваться как для вывода, так и для ввода и редактирования текста. Поля редактирования этого типа состоят из нескольких строк текста и имеют полосы прокрутки. Напротив, поля редактирования типа TextField состоят из одной строки и не имеют полос прокрутки. Оба этих класса являются наследниками класса TextComponent и, за исключением упомянутых различий, во всем аналогичны друг другу.

Текстовые компоненты TextComponent

Так как классы TextArea и TextField являются подклассами TextComponent, то они могут пользоваться его методами. Рассмотрим некоторые методы класса TextComponent. Вывести текст в поле редактирования или получить текст из поля можно методами setText() и getText() соответственно. Для выделения фрагмента текста, расположенного между указанными начальным и конечными символами, применяется метод select() (для выделения всего текста используется метод selectAll()), а для получения номеров первого и последнего выделенных символов - методы getSelectionStart() и getSelectionEnd(). Для получения выделенного в содержимом поля фрагмента текста используется метод getSelectedText(). Запретить или разрешить редактирование в поле можно при помощи метода setEditable(), а проверить, разрешено ли редактирование - методом isEditable().

Поле редактирования TextField

Для создания поля, в котором пользователь может ввести небольшой объем информации (одну строку текста), удобно пользоваться однострочным полем редактирования (текстовым полем) TextField. Например, создадим поле редактирования шириной 20 символов, инициализированной строкой "Enter text":

TextField tField=new TextField("Enter text",20);

add(tField);

Для получения информации о том, какова ширина текстового поля в символах, используется метод getColums().

Текстовые поля поддерживают ввод маскируемых символов, т.е. символов, ввод которых на экране отображается каким-либо одним символом (эхо-символом), а не фактически вводимыми символами. Для установки такого эхо-символа используется метод setEchoCharacter(), а для того, чтобы определить, какой символ используется в качестве эхо-символа, - метод getEchoChar(). Для проверки того, имеет ли поле эхо-символ, применяется метод echoCharIsSet().

Обработка событий от текстовых полей

Для обработки событий от текстовых полей (нажатие кнопки «Enter» свидетельствует о прекращении ввода информации) следует внести в метод action() контейнера, содержащего эти текстовые поля, следующий фрагмент:

// процесс обработки событий от текстовых полей

if(evt.target instanceof TextField)

{// получаем ссылку на текстовое поле, вызвавшее событие

TextField field=(TextField)evt.target;

// проверка, от какого именно поля пришло событие и

// обработка этого события от конкретного поля

.............................................

return true; // если событие обработано, иначе return false }

Поле редактирования TextArea

Для ввода большого объема информации применяются многострочные поля редактирования (текстовые области) TextArea. Действия пользователя с данными компонентами не генерируют сообщений ACTION_EVENT. Для создания этих полей существует большой набор конструкторов, при их помощи можно создавать объекты с указанным числом строк и числом символов в строке, просто поле с указанным текстом, а также поля, обладающие всеми этими параметрами, например:

// поле высотой 5 строк и шириной 20 символов

add(TextArea tArea1=new TextArea(5,20));

// поле, инициализированное строкой "Enter text"

add(TextArea tArea2=new TextArea("Enter text"));

// поле высотой 10 строк и шириной 15 символов,

// инициализированное строкой "Enter text"

add(TextArea tArea3=new TextArea("Enter text",10,15));

Получить количество строк и число символов в строке текстовой области можно методами getRows() и getColums().

Для добавления некоторого текста в конец содержимого текстовой области используется метод appendText(), для замены текста, расположенного между символами с указанными номерами, на другой текст - метод replaceText(), а для вставки некоторого текста после символа с казанным номером - метод insertText().

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]