如何创建一个简单的Paragraph类

时间:2012-02-13 09:29:11

标签: java swing text document jtextpane

我一直在尝试创建一个可以执行以下操作的课程:

•设置:字体对齐(左,中,右,对齐)
•有效的append文本文本方式。
该文本不需要是可选择的或可编辑的。 我必须能够覆盖文本的绘制/渲染。

我发现JDK JTextComponent类很难有效地使用,因为这是我到目前为止所做的,但它远非我想要实现的目标:

public class Paragraph extends JTextPane{

    public Paragraph(){
        this.setFont(Fonts.PARAGRAPH);
        this.setOpaque(false);
    }

   // ridiculously slow
   public void append(String s) {
     SimpleAttributeSet def = new SimpleAttributeSet();
     StyleConstants.setForeground(def, Colors.PARAGRAPH);
     Document d = getDocument();
     try {
       d.insertString(d.getLength(), s, def);
     } catch (BadLocationException ble) {
   }
 }  
}



问题:是否有任何库可以节省我重新发明轮子的时间?
如果没有,我该如何扩展JDK实现?感谢

1 个答案:

答案 0 :(得分:4)

您的文档应该是StyledDocument实例。然后只使用Document实例的setParagraphAttributes()方法。

对于多个附加,请使用单独的文档(未设置为JTextPane实例。

使用套件ot创建一个新的空文档实例。调用所有追加,然后将文档(theDocInstance)设置为JTextPane。