[Java]JTextPane加入不同属性的文本-转自 mq612(理想)

// mq612(理想)

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.text.*;

public class Test {
 JFrame frame;

 JTextPane textPane;

 public Test() {
  frame = new JFrame("JTextPane");
  textPane = new JTextPane();
  setAttr("第一行的文字", Color.red, false, 12);
  setAttr("第二行的文字", Color.BLACK, true, 25);
  setAttr("第三行的文字", Color.BLUE, false, 20);
  frame.getContentPane().add(textPane, BorderLayout.CENTER);
  frame.addWindowListener(new WindowAdapter() {
   public void windowClosing(WindowEvent e) {
    System.exit(0);
   }
  });
  frame.setSize(200, 300);
  frame.setVisible(true);
 }

 /**
  * 插入文字
  * @param str 字符串
  * @param attrSet 字符串详细描述
  */
 public void insert(String str, AttributeSet attrSet) {
  Document doc = textPane.getDocument();
  str = str + "/n";
  try {
   doc.insertString(doc.getLength(), str, attrSet);
  } catch (BadLocationException e) {
   System.out.println("BadLocationException: " + e);
  }
 }

 /**
  * 简单的设置文字使用的样式
  * @param str 字符串
  * @param col 颜色
  * @param bold 是否粗体,true为粗
  * @param fontSize 字体大小
  */
 public void setAttr(String str, Color col, boolean bold, int fontSize) {
  
  SimpleAttributeSet attrSet = new SimpleAttributeSet();
  
  StyleConstants.setForeground(attrSet, col);
  StyleConstants.setBold(attrSet, bold);
  StyleConstants.setFontSize(attrSet, fontSize);
  
  insert(str, attrSet);
 }

 public static void main(String[] args) {
  new Test();
 }
}

你可能感兴趣的:(Java,java,import,string,insert,class)