Java JTextPane
精华
小牛编辑
136浏览
2023-03-14
1 Java JTextPane的介绍
JTextPane是JEditorPane类的子类。JTextPane用于带有嵌入式图像和组件的样式化文档。它是可以用图形表示的属性标记的文本组件。JTextPane使用DefaultStyledDocument作为其默认模型。
2 Java JTextPane的构造方法
方法 | 描述 |
---|---|
JTextPane() | 创建一个新的JTextPane。 |
JtextPane(StyledDocument doc) | 使用指定的文档模型创建一个新的JTextPane。 |
3 Java JTextPane的方法
方法 | 描述 |
---|---|
Style addStyle(String nm, Style parent) | 将新样式添加到逻辑样式层次结构中。 |
AttributeSet getCharacterAttributes() | 获取插入符当前位置有效的字符属性,或者为null。 |
StyledDocument getStyledDocument() | 获取与编辑器关联的模型。 |
void setDocument(Document doc) | 将编辑器与文本文档相关联。 |
void setCharacterAttributes(AttributeSet attr, boolean replace) | 将给定的属性应用于字符内容。 |
void removeStyle(String nm) | 将删除先前添加到文档中的命名非空样式。 |
void setEditorKit(EditorKit kit) | 设置了当前安装的用于处理内容的工具包。 |
void setStyledDocument(StyledDocument doc) | 将编辑器与文本文档相关联。 |
4 Java JTextPane的案例
package cn.xnip;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
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 JTextPaneExample {
public static void main(String args[]) throws BadLocationException {
JFrame frame = new JFrame("JTextPane案例-小牛知识库网");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container cp = frame.getContentPane();
JTextPane pane = new JTextPane();
SimpleAttributeSet attributeSet = new SimpleAttributeSet();
StyleConstants.setBold(attributeSet, true);
// Set the attributes before adding text
pane.setCharacterAttributes(attributeSet, true);
pane.setText("Welcome");
attributeSet = new SimpleAttributeSet();
StyleConstants.setItalic(attributeSet, true);
StyleConstants.setForeground(attributeSet, Color.red);
StyleConstants.setBackground(attributeSet, Color.blue);
Document doc = pane.getStyledDocument();
doc.insertString(doc.getLength(), "To Java ", attributeSet);
attributeSet = new SimpleAttributeSet();
doc.insertString(doc.getLength(), "World", attributeSet);
JScrollPane scrollPane = new JScrollPane(pane);
cp.add(scrollPane, BorderLayout.CENTER);
frame.setSize(400, 300);
frame.setVisible(true);
}
}
输出结果为: