Introducción a JTextPane

JTextPane se usa para estilizar un documento y para representarlo gráficamente y tiene imágenes incrustadas y otros componentes. Es una subclase de JEditorPane que forma la base para componentes con estilo para el texto proporcionado por Java Swing Package. Esto también se puede usar para agregar formatos de texto personalizados y para texto sin estilo, se utiliza un área de texto normal. JTextPane utiliza documentos con estilo utilizando una interfaz StyledDocument como modelo. La interfaz del documento es el padre del que se deriva la interfaz StyledDocument. La interfaz del documento también es el modelo predeterminado para JTextPane.

Constructores de JTextPane

  1. public JTextPane () : este constructor muestra una nueva área de texto en blanco. Esto crea una nueva instancia de StyledEditorKit y establece el modelo de documento en nulo. Este constructor se hereda de la interfaz principal JEditorPane.
  2. public JtextPane (StyledDocument doc) : se crea un nuevo JTextPane con el modelo de documento especificado por la palabra clave doc aquí. Este constructor se hereda de la interfaz principal Documento.

Métodos de JTextPane

Hay métodos fijos pero innumerables implementados en JTextPane. Algunos de los principales métodos se enumeran a continuación:

1. Estilo

Este método se puede utilizar para incorporar nuevos estilos en la jerarquía de estilos lógicos. Los siguientes son algunos de los métodos secundarios derivados de Style:

addStyle: se usa para agregar un nuevo estilo a la jerarquía. Los atributos que se mencionan aquí se resuelven en un método ascendente de modo que el atributo otorgado al elemento secundario anulará automáticamente el mismo atributo del elemento primario.

Sintaxis: public Style addStyle (String str, Style par)

El parámetro str es el nombre del estilo único dentro de su colección. El nombre se vuelve nulo cuando el estilo queda sin nombre. par es el estilo principal especificado. Este método addStyle devuelve el nuevo estilo.

removeStyle: se usa para eliminar un estilo que no es nulo y que se agregó previamente al documento.

Sintaxis: public void removedStyle(String str)

str es el nombre del estilo que se eliminará

getStyle: se utiliza para obtener el nombre del estilo no nulo y que se agregó anteriormente.

Sintaxis: public Style getStyle (String str)

str es el nombre del estilo que se va a recuperar

setLogicalStyle: se usa para establecer el estilo para usar el párrafo desde la posición actual de intercalación.

Sintaxis: public void setLogicalStyle (Style log)

log es el estilo lógico que se le da al párrafo

getLogicalStyle: se utiliza para recuperar el estilo lógico dado al conjunto de párrafos en la posición actual de intercalación y devuelve el estilo.

Sintaxis: public Style getLogicalStyle()

2. AttributeSet ()

Hay muchas subclases que se utilizan para recuperar el atributo de carácter que está en la posición actual de caret. Son los siguientes:

  • public AtrributeSet () getCharacterAttributes (): devuelve los atributos de la posición actual de intercalación.
  • public AttributeSet getParagraphAttributes (): Se utiliza para recuperar los atributos del párrafo actual de la posición actual de intercalación.
  • public AttributeSet setParagraphAttributes (Atributo atr, booleano nuevo): se utiliza para aplicar los atributos pasados ​​como parámetros al párrafo. En el caso de las selecciones, aplica los atributos a los párrafos que intersecan esta selección. Y en el caso de que no haya selección, se aplica al párrafo presente en la posición actual de intercalación. atr es el atributo pasado y si el nuevo parámetro se da verdadero, primero reemplaza los atributos ya existentes.
  • public MutableAttributeSet getInputAttributes (): Se utiliza para recuperar los atributos de entrada para el panel.
  • public void setCharacterAttributes (AttributeSet atr, boolean new): Se utiliza para aplicar los atributos pasados ​​al contenido del personaje. Los atributos se aplican al rango seleccionado cuando una selección está presente y si la selección no está presente, los atributos se aplican a cualquier texto nuevo que se inserte. nuevo si verdadero devuelve los atributos existentes
  • public AttributeSet getCharacterAttributes (): recupera los atributos de caracteres presentes en la ubicación de detención actual o nulos.

3. StyledDocument ()

Se utiliza para recuperar el modelo asociado con el editor.

Sintaxis: public StyledDocument getStyledDocument()

4. setDocument

Se utiliza para asociar el editor con un documento de texto que debe pertenecer a StyledDocument. Invalida la clase setDocument de JTextComponent. Por lo tanto, se requiere que el documento a editar se pueda convertir a un StyledDocument sin el cual arroja una IllegalArgumentException.

Sintaxis: public void setDocument(Document new) : nuevo es el documento que se mostrará o cambiará.

5. setEditorKit

Se usa para configurar el kit que está actualmente instalado para manejar el contenido. Esta es la propiedad que se utiliza para establecer el tipo de contenido del editor. Anula setEditorKit de la clase JEditorPane. Esto también arroja una IllegalArgumentException si el kit no pertenece a StyledEditorKit.

Sintaxis: public final void setEditorKit (EditorKit edit) : la edición es el comportamiento requerido del kit.

6. paramString

Esto devuelve una representación de cadena de JTextPane.

Sintaxis: protected String paramString() : este método se utiliza principalmente para la depuración y su contenido devuelto varía entre las diferentes implementaciones. La cadena devuelta puede estar vacía y no ser nula.

Programa para implementar 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);
)
)

Salida:

Conclusión

Por lo tanto, JTextPane siempre se usa en casos en los que los documentos deben representarse gráficamente. Todos los atributos de un párrafo que tiene un estilo lógico adjunto tienen valores predeterminados que se aplicarán en caso de que no se anulen. La ventaja que JTextPane tiene sobre los paneles del editor es que tiene estos numerosos métodos integrados que son fáciles de llamar y trabajar. No es necesario que ningún archivo HTML o RTF incruste imágenes debido a la provisión de API que se dan en la clase JTextPane.

Artículos recomendados

Esta es una guía para JTextPane. Aquí discutimos los Métodos, Constructores y Programa para implementar JTextPane con la sintaxis y la salida. También puede consultar el siguiente artículo para obtener más información:

  1. JTextField en Java
  2. JPanel en Java
  3. JButton en Java
  4. JSplitPane
  5. Lanzamiento vs Lanzamientos | Las 5 principales diferencias que debes saber