Изучаем Java

Вы здесь: Главная >> Java-самоучитель >> Компоненты для работы с текстом в Java

Компоненты для работы с текстом в Java


Компоненты для работы с текстом

В библиотеке Java представлено множество компонентов для работы с текстом. Мы разберем лишь часть из них — основные (все они располагаются в палитре компонентов на вкладках AWT и Swing).

• Отображение текста, не редактируемого пользователем, — компоненты Label (java. awt) и JLabel (javax. swing).
• Однострочное текстовое поле— TextField (java. awt) и JTextField (javax. swing).
• Многострочная текстовая область— TextArea (java.awt) и JTextArea (javax. swing).
• Текстовая панель, позволяющая отображать различные шрифты, форматирование и др. — JEditorPane (javax. swing).

С текстовыми компонентами, которые не могут редактироваться пользователем, все просто. Они обычно используются как пояснения к другим компонентам, хотя их можно использовать и как надписи, на которых можно щелкать для выполнения каких-либо действий.

Однострочное текстовое поле представляет собой поле для ввода, в которое пользователь может вводить какую-либо информацию, а затем эту информацию может обрабатывать программа.

Многострочное текстовое поле представляет собой аналогичное поле для ввода, но не с одной строкой, а с несколькими.

Наибольший интерес, несомненно, представляет собой текстовое поле-панель, которое позволяет осуществлять набор текста различными шрифтами и цветами. Для выбора цветов существует специальное диалоговое окно. О нем мы подробнее поговорим в следующей главе. Сейчас мы поработаем с текстовой панелью, создав примитивный текстовый редактор, который, правда, не умеет сохранять, загружать, а может только изменять набираемый текст. Еще один значительный недостаток этого редактора заключается в том, что если мы будем менять параметры начертания текста, то изменения будут относиться ко всему набранному тексту.

Однако любопытно сконструировать подобную игрушку как пример.

1. Создайте новое приложение с названием проекта MyTextEditor и заголовком My Editor.
2. Поместите в окне дизайнера в форму компонент JEditorPane. Сделайте так, чтобы он был "растянут" на весь контейнер. Измените его свойство Text на значение " ".
3. Добавьте в окно структуры на значок UI компонент javax. swing. JColorChooser из секции Swing Containers в палитре компонентов.
4. Добавьте компонент JMenuBar в приложение. У значка this в окне структуры измените свойство JMenuBar на "jMenuBarl".
5. Разработайте меню таким образом, как показано в листинге 8.6.

Листинг 8.6.
Создание меню

Меню Шрифт
• Arial - переключатель (включен)
• Times New Roman — переключатель (выключен)
• Разделитель
• Подменю Размер — 8 переключателей внутри: 8, 9, 10, 11, 12, 14 (включен), 18, 36
• Разделитель
• Обычный элемент "Цвет текста"
• Обычный элемент "Цвет курсора"
• Разделитель
• Флажок "Полужирный" (выключен).
• Флажок "Курсив" (выключен).
Меню Правка
• Вырезать — обычный элемент меню
• Копировать — обычный элемент меню
• Вставить — обычный элемент меню
• Выделить все — обычный элемент меню

6. Теперь добавьте после объявления всех компонентов следующий код.

private String FontName = "Arial";
private int style = 0, size = 14;
private Font TextFont = new Font(FontName, style, size);

7. Теперь измените конструктор так, чтобы он выглядел следующим образом

public Framel() {
enableEvents (AWTEvent. WINDOW__EVENT__MASK) ;
try {
jbInit();
jEditorPanel.setFont(TextFont);
}
catch(Exception e) {
e.printStackTrace() ;
}
}

8. Теперь создайте для всех команд меню обработчики событий actionPerformed и наберите код, показанный в листинге 8.7.

Листинг 8.7.
Создание текстового редактора

Поговорим немного о написанном коде. Все переключатели или флажки при щелчке на них работают по следующему принципу. Если, допустим, флажок (или переключатель) установлен, то при нажатии кнопки мыши нужно сделать некие действия и сбросить его; а если он сброшен, то при нажатии сделать другие действия и установить флажок. Обычно выполняемые действия подразумевают включение/отключение каких-то операций. Это именно так и в нашем коде.

Кроме того, мы создаем экземпляр класса Font. В конструкторе, который мы используем, имеются три параметра: имя шрифта, стиль (0 — обычный, 1 — полужирный, 2 — курсив, 3 — полужирный курсив), размер шрифта.

Мы создаем в нашем классе четыре закрытых члена: экземпляр класса Font, который мы устанавливаем в качестве шрифта текстового поля, переменную для хранения имени шрифта, две переменные целого типа: для хранения стиля и для хранения размера шрифта. Мы присваиваем шрифт текстовому полю с помощью метода setFont.

Чтобы вызвать диалоговое окно Выбор цвета, нужно вызвать метод showDialog экземпляра класса JColorChooser. Этот метод возвращает тип Color. Методу мы передаем текущий цвет курсора (текста), а новый цвет курсора (текста) мы получаем при вызове этого метода.

Вот мы и создали довольно любопытную программу Результат ее работы может выглядеть так, как на следующем изображении (рис. 8.9).

Рис. 8.9. Результат выполнения листинга 8.7


Партнеры сайта