我一直在尝试创建一个可以执行以下操作的课程:
•设置:字体,对齐(左,中,右,对齐)
•有效的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实现?感谢
答案 0 :(得分:4)
您的文档应该是StyledDocument实例。然后只使用Document实例的setParagraphAttributes()方法。
对于多个附加,请使用单独的文档(未设置为JTextPane实例。
使用套件ot创建一个新的空文档实例。调用所有追加,然后将文档(theDocInstance)设置为JTextPane。