Иллюстрированный самоучитель по Java

Компоненты для ввода текста. Класс TextComponent. События.

В библиотеке AWT есть два компонента для ввода текста с клавиатуры: TextField, позволяющий ввести только одну строку, и TextArea, в который можно ввести множество строк.

Оба класса расширяют класс Textcomponent, в котором собраны их общие методы, такие как выделение текста, позиционирование курсора, получение текста.

Класс TextComponent

В классе TextComponent нет конструктора, этот класс не используется самостоятельно.

Основной метод класса – метод getText () – возвращает текст, находящийся в поле ввода, в виде строки string.

Поле ввода может быть нередактируемым, в этом состоянии текст в поле нельзя изменить с клавиатуры или мышью. Узнать состояние поля можно логическим методом isEditable(), изменить значения в нем – методом setEditable(boolean editable).

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

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

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

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

События

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

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.