我需要实现一个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的文本。

10-04 14:57