关于JTextPane,StyledDocument

laiwenwenti 2006-06-12 09:09:09
JTextPane有这么个方法setStyledDocument(StyledDocument sd)
在这个地方,我可以传一个StyledDocument的实例做参数。那么就可以设置JTextPane了。
但是如果我有若干个StyledDocument的实例,想同时放在一个JTextPane中显示出来怎么办?
达人帮帮忙
...全文
388 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
laiwenwenti 2006-06-17
  • 打赏
  • 举报
回复
up
UnAgain 2006-06-14
  • 打赏
  • 举报
回复
mark
mq612 2006-06-13
  • 打赏
  • 举报
回复
查查API Docs,应该有方法将元素提取出来的。
jesse8013 2006-06-13
  • 打赏
  • 举报
回复
自己去问老师吧
他能解决
laiwenwenti 2006-06-13
  • 打赏
  • 举报
回复
我自己也估计一个JTextPane只能有一个StyledDocument,但不知道是否有方法,可以对第二个StyledDocument进行解析,比如,解析为文字,图片,然后把文字图片加到第一个StyledDocument上?
这是我自己的一点猜想,但不知道如何实施这个解析的过程。还请各位达人指教
mq612 2006-06-12
  • 打赏
  • 举报
回复
一个JTextPane只有一个StyledDocument,如果想在JTextPane中显示各种不同样式的文字,下面有个小例子可以参考:

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

public class Test {
JFrame frame = null;

JTextPane textPane = null;

File file = null;

Icon image = null;

public Test() {
frame = new JFrame("JTextPane");
textPane = new JTextPane();
file = new File("./classes/test/icon.gif");
image = new ImageIcon(file.getAbsoluteFile().toString());
}

public void insert(String str, AttributeSet attrSet) {
Document doc = textPane.getDocument();
str = "\n" + str;
try {
doc.insertString(doc.getLength(), str, attrSet);
} catch (BadLocationException e) {
System.out.println("BadLocationException: " + e);
}
}

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);
// 字体大小
// StyleConstants.setFontFamily(attrSet, "黑体");
// 设置字体
insert(str, attrSet);
}

public void gui() {
textPane.insertIcon(image);
setDocs("第一行的文字", Color.red, false, 20);
setDocs("第二行的文字", Color.BLACK, true, 25);
setDocs("第三行的文字", Color.BLUE, false, 20);
frame.getContentPane().add(textPane, BorderLayout.CENTER);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(200, 300);
frame.setVisible(true);
}

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

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧