Как Использовать Редактора Пэйнса и текстовые Области (Учебные руководства Java™> Создание GUI С JFC/Swing> Используя Компоненты Swing)


След: Создание GUI С JFC/Swing
Урок: Используя Компоненты Swing
Раздел: Как Использовать Различные Компоненты
Как Использовать текстовые Области и Редактор Пэйнс
Домашняя страница > Создание GUI С JFC/Swing > Используя Компоненты Swing

Как Использовать текстовые Области и Редактор Пэйнс

Два класса Swing поддерживают разработанный текст: JEditorPane и его подкласс JTextPane. JEditorPane class является основой для стилизованных текстовых компонентов Swing и обеспечивает механизм, через который можно добавить поддержку пользовательских текстовых форматов. Если Вы хотите нестилизованный текст, используйте текстовую область вместо этого.

Можно видеть область редактора и текстовую область в использовании, выполняя TextSamplerDemo. Вот изображение TextSamplerDemo пример.

Приложение, которое обеспечивает выборку каждого текстового компонента Swing

Нажмите кнопку Launch, чтобы работать, TextSamplerDemo, используя Сеть Java™ Запускаются (загрузите JDK 6 или позже). Альтернативно, чтобы скомпилировать и выполнить пример самостоятельно, консультируйтесь, пример индексируют.

Запускает Приложение TextSamplerDemo

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


Отметьте: 

Если Вы нуждаетесь в абсолютной системе справочной информации, смотрите на систему JavaHelp™.


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

Используя Редактора Пэйна, чтобы Вывести на экран текст От URL

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

JEditorPane editorPane = new JEditorPane();
editorPane.setEditable(false);
java.net.URL helpURL = TextSamplerDemo.class.getResource(
                                "TextSamplerDemoHelp.html");
if (helpURL != null) {
    try {
        editorPane.setPage(helpURL);
    } catch (IOException e) {
        System.err.println("Attempted to read a bad URL: " + helpURL);
    }
} else {
    System.err.println("Couldn't find file: TextSamplerDemoHelp.html");
}

//Put the editor pane in a scroll pane.
JScrollPane editorScrollPane = new JScrollPane(editorPane);
editorScrollPane.setVerticalScrollBarPolicy(
                JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
editorScrollPane.setPreferredSize(new Dimension(250, 145));
editorScrollPane.setMinimumSize(new Dimension(10, 10));

Код использует конструктора по умолчанию, чтобы создать область редактора, затем вызывает setEditable(false) таким образом, пользователь не может отредактировать текст. Затем, код создает URL объект, и вызовы setPage метод с этим.

setPage метод открывает ресурс, на который указывает URL, и выясняет формат текста (который является HTML в примере). Если текстовый формат известен, область редактора инициализирует себя с текстом, найденным в URL. Стандартная область редактора может понять простой текст, HTML, и RTF. Отметьте, что страница могла бы быть загружена асинхронно, который сохраняет GUI быстро реагирующим, но означает, что недопустимо рассчитывать на данные, полностью загружаемые после звонка setPage возвраты.

Редактор Пэйнс по сравнению с текстовыми Областями

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

Пример Использования текстовой Области

Вот код от TextSamplerDemo пример, который создает и инициализирует текстовую область.

String[] initString =
        { /* ...  fill array with initial text  ... */ };

String[] initStyles =
        { /* ...  fill array with names of styles  ... */ };

JTextPane textPane = new JTextPane();
StyledDocument doc = textPane.getStyledDocument();
addStylesToDocument(doc);

//Load the text pane with styled text.
try {
    for (int i=0; i < initString.length; i++) {
        doc.insertString(doc.getLength(), initString[i],
                         doc.getStyle(initStyles[i]));
    }
} catch (BadLocationException ble) {
    System.err.println("Couldn't insert initial text into text pane.");
}

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

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

Редактор Пэйн и текстовый API Области

Этот раздел перечисляет часть API, связанного с областями редактора и текстом. Многие из самых полезных методов для JEditorPane и его подкласса JTextPane наследованы от JTextComponent class. Можно найти таблицы API для JTextComponent в текстовом Компонентном API. Также см. Класс JComponent, который описывает API, наследованный от JComponent.

API JEditorPane для Отображения текста от URL
Метод или Конструктор Описание
JEditorPane (URL)
JEditorPane (Строка)
Создает область редактора, загруженную текстом в указанном URL.
setPage (URL)
setPage (Строка)
Загружает область редактора (или текстовую область) с текстом в указанном URL.
URL getPage () Получает URL для области редактора (или текстовой области) текущая страница.
API JTextPane
Метод или Конструктор Описание
JTextPane ()
JTextPane (StyledDocument)
Создает текстовую область. Дополнительный параметр определяет текстовую модель области.
StyledDocument getStyledDocument
setStyledDocument (StyledDocument)
Получает или устанавливает текстовую модель области.

Примеры, Которые Используют текстовые Области и Редактора Пэйнса

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

Пример Где Описано Примечания
TextSamplerDemo Используя текстовые Компоненты Использование каждый текстовый компонент Swing.
TextComponentDemo Текстовые Компонентные Функции Обеспечивает специализированную текстовую область. Иллюстрирует много текстовых компонентных функций, таких как отмена и восстановление, фильтры документа, слушатели документа, слушатели изменения каре, и как связать действия редактирования с меню и нажатия клавиш.
TreeDemo Как Использовать Деревья Использует область редактора, чтобы вывести на экран справку, загруженную из файла HTML.

Учитесь редактировать текст HTML в JavaFX с Использованием JavaFX Средства управления UI: учебное руководство по Редактору HTML.


Проблемы с примерами? Попытайтесь Компилировать и Выполнить Примеры: FAQ.
Жалобы? Поздравление? Предложения? Дайте нам свою обратную связь.

Предыдущая страница: Как Сделать Диалоговые окна
Следующая страница: Как Использовать Селекторов Файла



Spec-Zone.ru - all specs in one place