Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
82
Добавлен:
24.02.2016
Размер:
257.54 Кб
Скачать

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

Поля редактирования типа 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().

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

При работе с текстовыми полями можно использовать события ActionEvent и TextEvent. Первое вырабатыватеся, когда пользователь нажал клавишу <Enter>, а второе - при изменении текста. Первое событие прослушивается ActionListener, а второе - TextListener. Оба интерфейса имеют по одному методу, поэтому механизм обработки событий прост. Для текстовой области используется событие TextEvent.

TextField textField1 = new TextField(); TextArea textArea1 = new TextArea(); textField1.setText("textField1"); textField1.addTextListener(new java.awt.event.TextListener() { public void textValueChanged(TextEvent e) { button1.setLabel("Изменяем текст в поле"); } }); textField1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { button1.setLabel("Изменили текст в поле"); } }); textArea1.setText("textArea1"); textArea1.addTextListener(new java.awt.event.TextListener() { public void textValueChanged(TextEvent e) { button1.setLabel("Изменяем текст в области"); } }); Для более полного знакомства с классом TextEvent рекомендуется посмотреть справку.