|
Spec-Zone .ru
спецификации, руководства, описания, API
|
Два класса Swing поддерживают разработанный текст: JEditorPane и его подкласс . JEditorPane class является основой для стилизованных текстовых компонентов Swing и обеспечивает механизм, через который можно добавить поддержку пользовательских текстовых форматов. Если Вы хотите нестилизованный текст, используйте текстовую область вместо этого.
Можно видеть область редактора и текстовую область в использовании, выполняя TextSamplerDemo. Вот изображение TextSamplerDemo пример.

Нажмите кнопку Launch, чтобы работать, TextSamplerDemo, используя (). Альтернативно, чтобы скомпилировать и выполнить пример самостоятельно, консультируйтесь, пример индексируют.
TextSamplerDemo пример только начинает демонстрировать возможности областей редактора и текстовых областей. Однако, верхняя правая область редактора иллюстрирует удобную, удобную в работе функцию: это выводит на экран недоступную для редактирования справочную информацию, загруженную из URL. Текстовая область в нижнем правом демонстрирует, что можно легко встроить изображения и даже компоненты непосредственно в текстовые области.
Если Вы нуждаетесь в абсолютной системе справочной информации, смотрите на .
Текстовый API Swing мощен и огромен, и мы могли посвятить всю книгу только использованию областей редактора и текстовых областей. Этот раздел представляет их возможности, подсказки предложений, на котором Вы могли бы хотеть использовать, и указывает другим источникам информации.
Одна задача, которую можно выполнить, не зная ничто о текстовой системе Swing, выводит на экран текст от URL. Вот код от
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 возвраты.
Чтобы использовать области редактора и текстовые области, Вы должны понять текстовую систему, которая описывается в текстовых Компонентных Функциях. Несколько фактов об областях редактора и текстовых областях рассеиваются всюду по тому разделу. Здесь мы перечисляем факты снова и обеспечиваем немного больше детали. Информация здесь должна помочь Вам понять различия между областями редактора и текстовыми областями, и когда использовать который.
setPage метод. JEditorPane class также предоставляет конструкторам, которые позволяют Вам инициализировать область редактора от URL. JTextPane У class нет таких конструкторов. См. Используя Редактора Пэйна, чтобы Вывести на экран текст От URL для примера, который использует эту функцию, чтобы загрузить недоступную для редактирования область редактора отформатированным HTML текстом. Знайте, что документ и набор редактора могли бы измениться при использовании setPage метод. Например, если область редактора будет содержать простой текст (значение по умолчанию), и Вы загружаете это HTML, то документ изменится на HTMLDocument экземпляр и набор редактора изменятся на HTMLEditorKit экземпляр. Если Ваша программа использует setPage метод, удостоверьтесь, что Вы корректируете свой код для возможных изменений к документу области и экземплярам набора редактора (слушатели документа перерегистра на новом документе, и так далее).
StyledDocument интерфейс. HTMLDocument и RTFDocument оба StyledDocuments таким образом, HTML и RTF работают как ожидалось в пределах текстовой области. Если Вы загружаете текстовую область простым текстом, хотя, текстовый документ области не является a PlainDocument поскольку Вы могли бы ожидать, но a DefaultStyledDocument.registerEditorKitForContentType метод, чтобы зарегистрировать Ваш набор в JEditorPane class. Регистрируя набор редактора таким образом, все области редактора и текстовые области в Вашей программе будут в состоянии считать, записать, и отредактировать новый формат. Однако, если новый набор редактора не является a StyledEditorKit, текстовые области не будут поддерживать новый формат.StyledDocument интерфейс. Текстовый пакет Swing обеспечивает реализацию по умолчанию этого интерфейса, DefaultStyledDocument, который является документом, что текст разделяет использование на области по умолчанию. Текстовая область также требует, чтобы ее набор редактора был экземпляром a StyledEditorKit (или подкласс). Знайте что read и write методы для StyleEditorKit работа с простым текстом.JTextPane САМ class содержит много методов для того, чтобы работать со стилями, которые просто вызывают методы в его документе или наборе редактора.JTextPane class, можно встроить изображения и компоненты в текстовой области. Можно встроить изображения в область редактора, также, но только включением изображений в HTML или файле RTF.Вот код от 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, связанного с областями редактора и текстом. Многие из самых полезных методов для JEditorPane и его подкласса наследованы от JTextComponent class. Можно найти таблицы API для JTextComponent в текстовом Компонентном API. Также см. Класс JComponent, который описывает API, наследованный от JComponent.
| Метод или Конструктор | Описание |
|---|---|
|
|
Создает область редактора, загруженную текстом в указанном URL. |
|
|
Загружает область редактора (или текстовую область) с текстом в указанном URL. |
| Получает URL для области редактора (или текстовой области) текущая страница. |
| Метод или Конструктор | Описание |
|---|---|
|
|
Создает текстовую область. Дополнительный параметр определяет текстовую модель области. |
|
|
Получает или устанавливает текстовую модель области. |
Чтобы начать использовать текст, Вы могли бы хотеть выполнить эти программы и исследовать их код, чтобы счесть что-то подобным тому, что Вы хотите сделать.
| Пример | Где Описано | Примечания |
|---|---|---|
TextSamplerDemo |
Используя текстовые Компоненты | Использование каждый текстовый компонент Swing. |
TextComponentDemo |
Текстовые Компонентные Функции | Обеспечивает специализированную текстовую область. Иллюстрирует много текстовых компонентных функций, таких как отмена и восстановление, фильтры документа, слушатели документа, слушатели изменения каре, и как связать действия редактирования с меню и нажатия клавиш. |
TreeDemo |
Как Использовать Деревья | Использует область редактора, чтобы вывести на экран справку, загруженную из файла HTML. |
Учитесь редактировать текст HTML в JavaFX с учебное руководство .