我真的需要你的帮助,因为我现在尝试使用各种方法做一些事情......但没有成功。
我有一个包含带有图像等的html文本的JTextPane。这非常有效。
现在,我有一个< span> < / span>我希望删除它的内容并插入一个组件。
更具体地说,我有:< span id ='123'>< img src ='url / 123.png'/>< / span> 我想要< span id ='123'> #JLabel< / span>
我知道如何:
我不知道我怎么做:
感谢您的帮助!
答案 0 :(得分:1)
你知道如何获得Span元素,所以可能会有以下工作:
Element类有一个getStartOffset()方法,您可以使用它来插入JLabel。
看看HTMLDocument类。有一个删除(元素)方法。
答案 1 :(得分:0)
您可以使用正则表达式来执行此操作。这是一个能够满足你想要的但却不能处理空格的例子:
<img src='.+?'(/>|></img>)
在您的示例中,如果忽略空格,则会如下所示:
String html = "< span id='123' ><img src='url/123.png'/>< /span >";
String newValue = html.replaceFirst("<img src='.+?'(/>|></img>)", "myJLabel");
要使其与空白一起使用,只需在\s*
处添加<img
即可。以下是允许< img
和<\\s*img src='.+?'(/>|></img>)
\s*
现在,为了让它按需要运行,只需将其他{{1}}放在您认为必要的地方
要了解有关正则表达式的更多信息,请阅读this
答案 2 :(得分:0)
为什么要在TextPane中添加jlabel?
无论如何,由于HTML是XML方言,您可以使用XML解析器来组织标记并更改内容和属性。
因此您只需调用setText()
即可更新Text-Pane的内容