Wprowadzenie do JTextPane

JTextPane służy do stylizowania dokumentu i reprezentowania go graficznie oraz zawiera osadzone obrazy i inne komponenty. Jest to podklasa JEditorPane, która stanowi podstawę stylizowanych komponentów tekstu dostarczanego przez Java Swing Package. Można to również wykorzystać do dodawania niestandardowych formatów tekstu, a dla tekstu niestylowanego używany jest zwykły obszar tekstu. JTextPane wykorzystuje stylizowane dokumenty przy użyciu interfejsu StyledDocument jako modelu. Interfejs dokumentu jest elementem nadrzędnym, z którego pochodzi interfejs StyledDocument. Interfejs dokumentu jest również domyślnym modelem dla JTextPane.

Konstruktory JTextPane

  1. public JTextPane () : ten konstruktor wyświetla nowy pusty obszar tekstowy. Tworzy to nową instancję StyledEditorKit i ustawia model dokumentu na null. Ten konstruktor jest dziedziczony z interfejsu nadrzędnego JEditorPane.
  2. public JtextPane (StyledDocument doc) : Nowy JTextPane jest tworzony z modelem dokumentu określonym tutaj przez słowo kluczowe doc. Ten konstruktor jest dziedziczony z Dokumentu interfejsu nadrzędnego.

Metody JTextPane

Istnieją stałe, ale niezliczone metody zaimplementowane w JTextPane. Kilka głównych metod wymieniono poniżej:

1. Styl

Tej metody można użyć do włączenia nowych stylów do logicznej hierarchii stylów. Oto kilka metod potomnych pochodzących ze stylu:

addStyle: służy do dodawania nowego stylu do hierarchii. Wymienione tutaj atrybuty są rozwiązywane metodą oddolną, dzięki czemu atrybut podany podrzędnemu automatycznie nadpisze ten sam atrybut nadrzędny.

Składnia: public Style addStyle (String str, Style par)

parametr str to nazwa unikalnego stylu w swojej kolekcji. Nazwa staje się pusta, gdy styl nie ma nazwy. par jest określonym stylem nadrzędnym. Ta metoda addStyle zwraca nowy styl.

removeStyle: służy do usuwania stylu, który wcześniej nie był zerowy, dodany wcześniej do dokumentu.

Składnia: public void removedStyle(String str)

str jest nazwą stylu do usunięcia

getStyle: Służy do pobierania nazwy stylu o wartości innej niż null, która została wcześniej dodana.

Składnia: public Style getStyle (String str)

str to nazwa stylu do pobrania

setLogicalStyle: Służy do ustawienia stylu używania akapitu z bieżącej pozycji karetki.

Składnia: public void setLogicalStyle (Style log)

log jest stylem logicznym nadawanym akapitowi

getLogicalStyle: Służy do wyszukiwania stylu logicznego nadanego zestawowi akapitów w bieżącej pozycji karetki i zwraca Styl.

Składnia: public Style getLogicalStyle()

2. AttributeSet ()

Istnieje wiele podklas, które służą do wyszukiwania atrybutu postaci, który znajduje się w obecnej pozycji karetki. Są to:

  • public AtrributeSet () getCharacterAttributes (): zwraca atrybuty z bieżącej pozycji karetki.
  • public AttributeSet getParagraphAttributes (): Służy do pobierania bieżących atrybutów akapitu z bieżącej pozycji karetki.
  • public AttributeSet setParagraphAttributes (atrybut atr, boolean nowy): Używany do zastosowania atrybutów przekazanych jako parametry do akapitu. W przypadku selekcji stosuje atrybuty do akapitów, które przecinają tę selekcję. W przypadku, gdy nie ma zaznaczenia, jest on stosowany do akapitu obecnego w bieżącym położeniu kursora. atr jest przekazywanym atrybutem i jeśli nowy parametr ma wartość true, najpierw zastępuje już istniejące atrybuty.
  • public MutableAttributeSet getInputAttributes (): Służy do pobierania atrybutów wejściowych dla panelu.
  • public void setCharacterAttributes (AttributeSet atr, boolean new): Używany do zastosowania przekazanych atrybutów do treści znaku. Atrybuty są stosowane do wybranego zakresu, gdy zaznaczenie jest obecne, a jeśli zaznaczenie nie jest obecne, atrybuty są stosowane do każdego wstawionego nowego tekstu. nowy, jeśli true zwraca istniejące atrybuty
  • public AttributeSet getCharacterAttributes (): Pobiera atrybuty postaci obecne w bieżącej lokalizacji karetki lub puste.

3. StyledDocument ()

Służy do pobierania modelu powiązanego z edytorem.

Składnia: public StyledDocument getStyledDocument()

4. setDocument

Służy do powiązania edytora z dokumentem tekstowym, który powinien należeć do StyledDocument. Zastępuje klasę setDocument z JTextComponent. Dlatego wymagane jest, aby edytowany dokument mógł zostać przekonwertowany na StyledDocument, bez którego zgłasza wyjątek IllegalArgumentException.

Składnia: public void setDocument(Document new) - nowy to dokument do wyświetlenia lub zmiany.

5. setEditorKit

Służy do ustawiania zestawu, który jest obecnie zainstalowany do obsługi zawartości. Jest to właściwość używana do ustalenia typu zawartości edytora. Zastępuje setEditorKit z klasy JEditorPane. Powoduje to także zgłoszenie wyjątku IllegalArgumentException, jeśli zestaw nie należy do StyledEditorKit.

Składnia: public final void setEditorKit (EditorKit edit) - edycja jest wymaganym zachowaniem zestawu.

6. ParamString

Zwraca ciąg znaków reprezentujący JTextPane.

Składnia: protected String paramString() - Ta metoda jest używana głównie do debugowania, a jej zwracana treść różni się w zależności od implementacji. Zwrócony ciąg może być pusty i nie mieć wartości null.

Program do implementacji 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);
)
)

Wynik:

Wniosek

Dlatego JTextPane jest zawsze używany w przypadkach, gdy dokumenty muszą być reprezentowane graficznie. Wszystkie atrybuty akapitu z dołączonym stylem logicznym mają wartości domyślne, które zostaną zastosowane, jeśli nie zostaną zastąpione. Zaletą JTextPane w stosunku do paneli edytora jest to, że ma wiele wbudowanych metod, które są łatwe do wywołania i pracy. Nie ma potrzeby osadzania obrazów w żadnym pliku HTML lub RTF z powodu udostępnienia interfejsów API podanych w klasie JTextPane.

Polecane artykuły

To jest przewodnik po JTextPane. Tutaj omawiamy metody, konstruktory i program do implementacji JTextPane ze składnią i danymi wyjściowymi. Możesz także spojrzeć na następujący artykuł, aby dowiedzieć się więcej -

  1. JTextField w Javie
  2. JPanel w Javie
  3. JButton w Javie
  4. JSplitPane
  5. Rzut vs Rzuty | 5 najważniejszych różnic, które powinieneś znać