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();
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值