Читаем Java 7 полностью

Текст, находящийся в поле, хранится как объект класса string, поэтому у каждого символа есть индекс (у первого — индекс 0). Индекс используется для определения позиции курсора (caret) методом getCaretPosition (), для установки позиции курсора методом

setCaretPosition(int ind) и для выделения текста.

Текст выделяется, как обычно, мышью или клавишами со стрелками при нажатой клавише , но можно выделить его из программы методом select(int begin, int end). При этом помечается текст от символа с индексом begin включительно до символа с индексом end исключительно.

Весь текст выделяет метод selectAll (). Можно отметить начало выделения методом

setSelectionStart(int ind);

и конец выделения методом

setSelectionEnd(int ind);

Важнее все-таки не задать, а получить выделенный текст. Его возвращает метод getSelectedText (), а начальный и конечный индекс выделения возвращают методы

getSelectionStart() и getSelectionEnd().

События

Кроме событий класса Component — ComponentEvent, FocusEvent, KeyEvent, MouseEvent — при изменении текста пользователем происходит событие TextEvent.

Строка ввода TextField

Компонент TextField — это поле для ввода одной строки текста. Ширина поля измеряется в колонках (column). Ширина колонки — это средняя ширина символа в шрифте, которым вводится текст. Нажатие клавиши заканчивает ввод и служит сигналом к началу обработки введенного текста, т. е. при этом происходит событие

ActionEvent.

В классе четыре конструктора:

□ TextField () — создает пустое поле шириной в одну колонку;

□ TextField (int columns) -создает пустое поле с числом колонок columns;

□ TextField(String text) — создает поле с текстом text;

□ TextField (String text, int columns) - создает поле с текстом text и числом колонок

columns.

К методам, унаследованным от класса Textcomponent, добавляются методы getColumns () и

setColumns(int col).

Интересная разновидность строки ввода — строка для ввода пароля. В таком поле вместо вводимых символов появляется какой-нибудь особый эхо-символ, чаще всего звездочка, чтобы пароль никто не подсмотрел из-за плеча.

Строка ввода пароля получается из обычной строки ввода после выполнения метода setEchoChar(char echo). Аргумент echo — это символ, который будет появляться в поле. Проверить, установлен ли эхо-символ, можно логическим методом echoCharIsSet (); получить эхо-символ — методом getEchoChar ( ).

Чтобы вернуть строку ввода в обычное состояние, достаточно выполнить метод

setEchoChar(0).

События

Кроме событий класса Component — ComponentEvent, FocusEvent, KeyEvent, MouseEvent — при изменении текста пользователем происходит событие TextEvent, а при нажатии клавиши — событие ActionEvent.

Поле ввода TextArea

Компонент TextArea — это область ввода с произвольным числом строк. Нажатие клавиши просто переводит курсор в начало следующей строки. В области ввода могут быть установлены линейки прокрутки, одна или обе.

Основной конструктор класса,

TextArea(String text, int rows, int columns, int scrollbars);

создает область ввода с текстом text, числом видимых строк rows, числом колонок columns и заданием полос прокрутки scrollbars одной из четырех констант:

SCROLLBARS_NONE, SCROLLBARS_HORIZONTAL_ONLY, SCROLLBARS_VERTICAL_ONLY, SCROLLBARS_BOTH.

Остальные конструкторы задают некоторые параметры по умолчанию:

□ TextArea (String text, int rows, int columns) -присутствуют обе полосы прокрутки;

□ TextArea (int rows, int columns) — в поле пустая строка;

□ TextArea(string text) — размеры устанавливает контейнер;

□ TextArea ( ) -конструктор по умолчанию.

Среди методов класса TextArea наиболее важны:

□ append (string text) — добавляет текст text в конец уже введенного текста;

□ insert (String text, int pos) -вставляет текст в указанную позицию pos;

□ replaceRange(String text, int begin, int end) — удаляет текст, начиная с индекса begin включительно по end исключительно, и помещает вместо него текст text.

Другие методы позволяют изменить и получить количество видимых строк.

События

Кроме событий класса Component — ComponentEvent, FocusEvent, KeyEvent, MouseEvent — при изменении текста пользователем происходит событие TextEvent.

Рассмотрим пример. В листинге 10.3 создаются три поля (tf1, tf2, tf3 — для ввода имени пользователя, его пароля и заказа) и не редактируемая область ввода, в которой накапливается заказ. В поле ввода пароля tf2 появляется эхо-символ *. Результат показан на рис. 10.3.

Листинг 10.3. Поля ввода

import java.awt.*; import java.awt.event.*;

class TextTest extends Frame{

TextTest(String s){ super(s); setLayout(null);

Перейти на страницу:

Все книги серии В подлиннике

Java 7
Java 7

Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др. Дано подробное изложение последней версии сервлетов, технологии JSP и библиотек тегов JSTL. Около двухсот законченных программ иллюстрируют рассмотренные приемы программирования. Приведена подробная справочная информация о классах и методах Core Java API.

Ильдар Шаукатович Хабибуллин

Программирование, программы, базы данных

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных