我需要实现一个TextPane,它将在旅途中动态添加内容。它可以包含文本和链接。
可以通过将JLabel添加到textPane来显示链接。但是问题是,textPane拥有的所有文本都需要存储到文件中。 textPane.getText()
返回文本,但不附加添加到textPane的组件的任何文本。
例如,如果textPane具有String(“ Hello”)和JLabel(“ label”)。 textPane.getText()
仅返回“ hello”。如何检索“标签”?
最佳答案
通常,getText()
代表文档的内容。为了您的目标,您应该遍历字符Elements
,并针对每个字符检查属性是否具有Component
。然后投放到JLabel
并获取文字等。
还要检查如何将组件添加到JTextPane
。您可以将组件添加到属性中,并在属性中插入适当的字符串。
SimpleAttributeSet attrs=new SimpleAttributeSet();
StyleConstants.setComponent(...yourLabel);
documnet.insertString(offset, yourLabel.getText(), attrs);
然后,您的
Document
具有JLabel
的文本。