JTextPane加入不同属性的文本

package 文本域;

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

public class Test {
 JFrame myFrame;
 JTextPane myTextPane;

 public Test() {
  
  myFrame = new JFrame("JTextPane");
  myTextPane = new JTextPane();
  
 }

 /**
  * 插入文字
  * 
  * @param str
  *            字符串
  * @param attrSet
  *            字符串详细描述
  */
 public void insert(String str, AttributeSet attrSet) {
  Document doc = myTextPane.getDocument();
  str = "\n" + str;
  
  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 setDocs(String str, Color col, boolean bold, int fontSize) {
  SimpleAttributeSet attrSet = new SimpleAttributeSet();
  StyleConstants.setForeground(attrSet, col);
  
  // 颜色
  if (bold == true) {
   StyleConstants.setBold(attrSet, true);
  }// 字体类型
  StyleConstants.setFontSize(attrSet, fontSize);
  // 字体大小
  insert(str, attrSet);
 }

 public void init() {
  setDocs("我爱你!", Color.BLACK, false, 20);
  setDocs("你爱我!", Color.BLUE, true, 35);
  setDocs("死心ta地", Color.red, false, 28);
  myFrame.add(myTextPane, BorderLayout.CENTER);
  
  myFrame.addWindowListener(new WindowAdapter() {
   public void windowClosing(WindowEvent e) {
    System.exit(0);
   }
  });
  
  myFrame.setSize(250, 360);
  myFrame.setVisible(true);
 }

 public static void main(String[] args) {
  Test test = new Test();
  test.init();
 }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值