如何将RTF格式的字符串打印到JLabel?
我有我的定制JComponent它做了很多绘图操作。如何将RTF格式的字符串打印到JLabel?
它们还包括用于文本段落的drawStrings,但现在我想要格式化文本(在带jtextpane或另一个RTF编辑器的单独窗口中)(粗体,字体大小,对齐,字体颜色,列表)并显示此内容格式化文本在我自己的组件中。
编号喜欢做的事,没有bufferedimages因为如果我有一个很大的JComponent充满图像,我会得到一个溢出错误(RAM)
喜欢的东西与AttributedString可以工作,但如何?
我真的不知道如何得到RTF文本出的JTextPane的(或者,如果有更好的编辑PLZ告诉我),绘制的“的paintComponent(图形G)”方法 。
编辑器只是用来文本格式轻松,而不是为演示(这是我自己的组件完成的)
谁能帮助我吗?
感谢您的帮助,
,所以我创建AttributeString,然后应用RTF-打印格式的呢?
你知道我如何将RTF信息挤出到足够的AttributedString?例如其将格式化的文本构造一个AttributedString像
public AttributedString getAttrString(String plainRTF){
...
}
非常感谢
您可以分析底层Document的结构的函数来获得实际的元素。每个Element都有一组您可以通过getAttributes()访问的属性。
您可以使用document.getText()
构建AttributedString
并使用AttributedString.addAttribute()
方法应用相应的样式。
然后在Graphics
上画字符串。看看这个使用TextLayout呈现AttributedString的tutorial。
看看styledDocumentToAttributedString()
方法here。它可能已经实现了你所需要的;这取决于你的字符串的复杂性。此外,这discussion可能会有用。
有我的问题,以这样的功能的示例实现的链接。这有点简单,但应该给你一个大概的想法。 – tenorsax 2012-03-19 03:23:19