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

Самый общий способ загрузки текста — занести текст из входного потока методом

read(InputStream in, Object obj). Если установлен редактор HTMLEditorKit и параметр obj имеет тип HTMLDocument, то текст HTML будет проинтерпретирован. В других случаях будет обрабатываться "плоский" текст.

Текстовый редактор показывает и изображения, определенные HTML-тегом . Но для работы с изображениями и компонентами более удобен редактор класса JTextPane.

Редактор JTextPane

Класс JTextPane непосредственно расширяет класс JEditorPane и наследует все его свойства. Кроме этого он позволяет работать со структурированным текстом с различными стилями, поскольку по умолчанию наделен моделью данных типа

DefaultStyledDocument.

В редактор легко добавить новые стили методом

addStyle(String name, Style parent);

Можно задать множество атрибутов для отдельных символов, которые выделены в тексте или которые будут вводиться в текст, методом

setCharacterAttributes(AttributeSet attr, boolean replace);

Можно задать атрибуты сразу целому элементу, который выделен или в котором находится текущая позиция, методом

setParagraphAttributes(AttributeSet attr, boolean replace);

Если второй аргумент этих методов равен true, то существующие атрибуты будут заменены новыми.

Можно задать и новую модель данных методом

setStyledDocument(StyledDocument);

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

Более того, в текущую позицию текста или вместо выделенного текста можно вставить любой компонент методом insertComponent(Component). Изображение и компонент хранятся в модели данных как атрибут одного символа.

Вопросы для самопроверки

1. Как используется модель MVC в текстовых компонентах?

2. В чем отличие текстовых компонентов Swing от аналогичных компонентов AWT?

3. Можно ли в текстовых компонентах Swing менять шрифт?

4. Можно ли в текстовых компонентах Swing использовать разные шрифты в одной строке?

5. В каких случаях удобно использовать готовые текстовые редакторы Swing?

6. Можно ли средствами Swing написать свой текстовый редактор Swing?

7. Можно ли в текстовых редакторах Swing использовать разные шрифты в одном документе?

ГЛАВА 13

Таблицы


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

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

В графической библиотеке Swing для решения таких задач имеются классы JTabie, JTableHeader, TableColumn и сопутствующие им классы, составляющие пакет j avax. swing. table. Эти классы позволяют создать не только статичные таблицы, отражающие результаты запроса, но и редактируемые таблицы, изменяющие данные, и даже полномасштабные электронные таблицы. Рассмотрим последовательно эти классы.

Класс JTable

Класс JTable очень велик. Он определяет множество методов построения таблиц и работы с ними. С ним связано несколько классов-делегатов. В своей работе класс JTable использует класс DefaultTableModel для хранения данных, класс JTableHeader для построения заголовков столбцов, класс TableCellEditor для редактирования ячеек, класс TableCellRenderer для отображения ячеек на экране, класс TableColumn для сбора информации о свойствах каждого столбца. Для изменения свойств таблицы эти классы нужно заменить их расширениями или реализовать соответствующие интерфейсы.

Таблицы сконструированы по схеме "Model-View-Controller". Для хранения содержимого таблицы и ее характеристик имеются три модели данных: модель ячеек таблицы, описанная интерфейсом TableModel, модель столбцов таблицы, описанная интерфейсом TableColumnModel, и модель выделения ячеек таблицы, в качестве которой взята модель выделения списков ListSelectionModel (о ней мы уже говорили в главе 11).

Для создания таблицы предлагается несколько конструкторов.

□ Конструктор по умолчанию JTable () создает пустую таблицу без строк и столбцов с пустыми моделями данных.

□ Конструктор JTable(int rows, int columns) формирует пустую редактируемую таблицу с заданным числом rows строк и columns столбцов с моделью данных по умолчанию, которая предполагает хранить в таблице объекты типа Object в виде вектора типа Vector, состоящего из векторов. В нее можно вводить данные прямо с клавиатуры.

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

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

Java 7
Java 7

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

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

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

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

C# 4.0: полное руководство
C# 4.0: полное руководство

В этом полном руководстве по C# 4.0 - языку программирования, разработанному специально для среды .NET, - детально рассмотрены все основные средства языка: типы данных, операторы, управляющие операторы, классы, интерфейсы, методы, делегаты, индексаторы, события, указатели, обобщения, коллекции, основные библиотеки классов, средства многопоточного программирования и директивы препроцессора. Подробно описаны новые возможности C#, в том числе PLINQ, библиотека TPL, динамический тип данных, а также именованные и необязательные аргументы. Это справочное пособие снабжено массой полезных советов авторитетного автора и сотнями примеров программ с комментариями, благодаря которым они становятся понятными любому читателю независимо от уровня его подготовки. Книга рассчитана на широкий круг читателей, интересующихся программированием на C#.Введите сюда краткую аннотацию

Герберт Шилдт

Программирование, программы, базы данных
Разработка ядра Linux
Разработка ядра Linux

В книге детально рассмотрены основные подсистемы и функции ядер Linux серии 2.6, включая особенности построения, реализации и соответствующие программны интерфейсы. Рассмотренные вопросы включают: планирование выполнения процессов, управление временем и таймеры ядра, интерфейс системных вызовов, особенности адресации и управления памятью, страничный кэш, подсистему VFS, механизмы синхронизации, проблемы переносимости и особенности отладки. Автор книги является разработчиком основных подсистем ядра Linux. Ядро рассматривается как с теоретической, так и с прикладной точек зрения, что может привлечь читателей различными интересами и потребностями.Книга может быть рекомендована как начинающим, так и опытным разработчикам программного обеспечения, а также в качестве дополнительных учебных материалов.

Роберт Лав

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