我有一个由JTextPane显示的HTML文档非常好用。我有一些按钮,我使用ActionListeners与ButtonModel交互,我挂钩到状态链接(#foo)来处理简单的内部应用程序链接。
我的问题是我有一个INPUT元素,我需要更改“值”,以便文本在框中更改。
答案 0 :(得分:1)
JTextPane的getText()
和setText()
方法使您可以完全访问组件显示的文本。如果这恰好是HTML,那么您正在处理的文本是HTML文档,您需要更改该HTML文本,就像您直接显示HTML一样。
如果您有INPUT
type="text"
或默认类型,则会显示文本字段,其显示值由value=
属性控制。
为此,您需要对JTextPane的文本值进行一些代码内文本编辑。您可以使用IndexOf()
查找INPUT
标记的偏移量,然后再次找到value
或结束尖括号,然后在所需位置插入所需的值。
如果设置了新的String,请使用setText()
将其重新放回JTextPane中。完成。
答案 1 :(得分:1)
HTMLDocument有一个getElement方法,用于获取具有给定id属性的javax.swing.text.Element。使用它来获取输入元素,然后调用
htmlDocument.setOuterHtml(
inputElement,
"<input id=\"foo\" value=\"" + escapeHtml(newValue) + "\">"
)
用新值替换inputElement的值。
注意,我没试过这个。如果有效,请告诉我们!