Введение в JTextPane

JTextPane используется для стилизации документа и для его графического представления и имеет встроенные изображения и другие компоненты. Это подкласс JEditorPane, который формирует основу для стилевых компонентов для текста, предоставляемого Java Swing Package. Это также может быть использовано для добавления пользовательских текстовых форматов, а для текста без стилей используется обычная текстовая область. JTextPane использует стилизованные документы, используя интерфейс StyledDocument в качестве модели. Интерфейс документа - это родительский элемент, от которого получен интерфейс StyledDocument. Интерфейс документа также является моделью по умолчанию для JTextPane.

Конструкторы JTextPane

  1. public JTextPane () : Этот конструктор отображает новую пустую текстовую область. Это создает новый экземпляр StyledEditorKit и устанавливает для модели документа значение null. Этот конструктор наследуется от родительского интерфейса JEditorPane.
  2. public JtextPane (StyledDocument doc) : создается новый JTextPane с моделью документа, указанной здесь ключевым словом doc. Этот конструктор наследуется от родительского интерфейса Document.

Методы JTextPane

В JTextPane реализованы фиксированные, но неисчислимые методы. Некоторые из основных методов перечислены ниже:

1. Стиль

Этот метод может использоваться для включения новых стилей в иерархию логических стилей. Ниже приведены несколько дочерних методов, производных от Style:

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

Синтаксис: public Style addStyle (String str, Style par)

Параметр str - это имя уникального стиля в его коллекции. Имя становится пустым, когда стиль остается безымянным. par - указанный родительский стиль. Этот метод addStyle возвращает новый стиль.

removeStyle: используется для удаления стиля, который не является пустым, ранее добавленный в документ.

Синтаксис: public void removedStyle(String str)

str - название стиля, который нужно удалить

getStyle: используется для получения имени стиля not-null, который был ранее добавлен.

Синтаксис: public Style getStyle (String str)

str - имя стиля, который нужно получить

setLogicalStyle: Используется для установки стиля для использования абзаца из текущей позиции каретки.

Синтаксис: public void setLogicalStyle (Style log)

журнал, являющийся логическим стилем, который присваивается абзацу

getLogicalStyle: Используется для извлечения логического стиля, заданного для набора абзацев в текущей позиции каретки, и возвращает стиль.

Синтаксис: public Style getLogicalStyle()

2. AttributeSet ()

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

  • public AtrributeSet () getCharacterAttributes (): возвращает атрибуты из текущей позиции каретки.
  • public AttributeSet getParagraphAttributes (): Используется для извлечения атрибутов текущего абзаца из текущей позиции каретки.
  • public AttributeSet setParagraphAttributes (Attribute atr, boolean new): Используется для применения атрибутов, переданных в качестве параметров к абзацу. В случае выбора он применяет атрибуты к абзацам, которые пересекают этот выбор. И в случае, когда нет выбора, он применяется к абзацу, присутствующему в текущей позиции каретки. Атр - это переданный атрибут, и если новый параметр имеет значение true, он сначала заменяет уже существующие атрибуты.
  • public MutableAttributeSet getInputAttributes (): Используется для получения входных атрибутов для панели.
  • public void setCharacterAttributes (AttributeSet atr, логическое новое): используется для применения переданных атрибутов к символьному содержимому. Атрибуты применяются к выбранному диапазону, когда выделение присутствует, а если выделение отсутствует, то атрибуты применяются к любому новому вставляемому тексту. new, если true возвращает существующие атрибуты
  • public AttributeSet getCharacterAttributes (): извлекает атрибуты символа, присутствующие в текущем расположении каретки или ноль.

3. StyledDocument ()

Он используется для получения модели, связанной с редактором.

Синтаксис: public StyledDocument getStyledDocument()

4. setDocument

Используется для связи редактора с текстовым документом, который должен принадлежать StyledDocument. Он переопределяет класс setDocument из JTextComponent. Следовательно, требуется, чтобы редактируемый документ можно было преобразовать в StyledDocument, без которого он создает исключение IllegalArgumentException.

Синтаксис: public void setDocument(Document new) - новый документ для отображения или изменения.

5. setEditorKit

Используется для установки набора, который в настоящее время установлен для обработки содержимого. Это свойство, которое используется для определения типа содержимого редактора. Он переопределяет setEditorKit из класса JEditorPane. Это также вызывает исключение IllegalArgumentException, если набор не принадлежит StyledEditorKit.

Синтаксис: public final void setEditorKit (EditorKit edit) - редактирование является обязательным поведением набора.

6. paramString

Это возвращает строковое представление JTextPane.

Синтаксис: protected String paramString() - этот метод используется главным образом для отладки, и его возвращаемое содержимое различается в разных реализациях. Возвращаемая строка может быть пустой и не нулевой.

Программа для реализации JTextPane

//Importing all the dependancies of Java awt used for GUI purpose
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Font;
//Importing all the dependancies of Java swing package also used for GUI purpose and has many built-in functions
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextPane;
import javax.swing.text.BadLocationException;
import javax.swing.text.Document;
import javax.swing.text.SimpleAttributeSet;
import javax.swing.text.StyleConstants;
public class JTextPaneTest (
//Handling BadLocationException to report such bad locations in the document model
public static void main(String args()) throws BadLocationException (
//The string name we give here is displayed as the document name
JFrame jfr = new JFrame("Example of JTextPane");
// Makes the application to exit preventing it from running in the background
jfr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container con = jfr.getContentPane();
JTextPane jpan = new JTextPane();
SimpleAttributeSet attrSet = new SimpleAttributeSet();
StyleConstants.setBold(attrSet, true);
// Attributes are set just before adding the text
jpan.setCharacterAttributes(attrSet, true);
jpan.setText("This ");
// Few of the other examples of attributes and features present in JTextPane
attrSet = new SimpleAttributeSet();
StyleConstants.setAlignment(attrSet, 1);
// Required colors can be set from the range of fixed available choices
StyleConstants.setForeground(attrSet, Color.yellow);
StyleConstants.setBackground(attrSet, Color.magenta);
Document doc = jpan.getStyledDocument();
doc.insertString(doc.getLength(), "is an ", attrSet);
attrSet = new SimpleAttributeSet();
StyleConstants.setItalic(attrSet, true);
StyleConstants.setForeground(attrSet, Color.RED);
StyleConstants.setBackground(attrSet, Color.cyan);
doc.insertString(doc.getLength(), "Example ", attrSet);
StyleConstants.setUnderline(attrSet, true);
StyleConstants.setFontSize(attrSet, 20);
doc.insertString(doc.getLength(), "of JTextPane ", attrSet);
// Scroll Pane is used to display a component and to change its size dynamically
JScrollPane scrollPane = new JScrollPane(jpan);
con.add(scrollPane, BorderLayout.CENTER);
jfr.setSize(550, 300);
jfr.setVisible(true);
)
)

Выход:

Вывод

Следовательно, JTextPane всегда используется в тех случаях, когда документы должны быть представлены графически. Все атрибуты абзаца, к которому присоединен логический стиль, имеют значения по умолчанию, которые будут применяться в случае, если они не будут переопределены. Преимущество JTextPane перед панелями редактора состоит в том, что он имеет эти многочисленные встроенные методы, с которыми легко обращаться и работать. Нет необходимости в каком-либо файле HTML или RTF для встраивания изображений из-за предоставления API, заданного в классе JTextPane.

Рекомендуемые статьи

Это руководство по JTextPane. Здесь мы обсуждаем методы, конструкторы и программы для реализации JTextPane с синтаксисом и выводом. Вы также можете посмотреть следующую статью, чтобы узнать больше -

  1. JTextField в Java
  2. JPanel на Java
  3. JButton на Java
  4. Панель с разделителем
  5. Бросок против бросков | 5 главных отличий, которые вы должны знать