我有一个由 JTextPane 显示的 HTML 文档,效果很好。我有一些按钮,我使用 ActionListeners 与 ButtonModel 进行交互,我连接到状态链接 (#foo) 以处理简单的内部应用程序链接。
我的问题是我有一个 INPUT 元素,我需要更改它的“值”,以便框中的文本发生变化。
JTextPanegetText()
和setText()
方法使您可以完全访问组件显示的文本。如果这恰好是 HTML,那么您正在处理的文本就是一个 HTML 文档,您需要更改该 HTML 文本,就像您直接显示 HTML 一样。
如果您有INPUT
withtype="text"
或 default 类型,则显示一个文本字段,其显示值由value=
属性控制。
为此,您需要对 JTextPane 的文本值进行一些代码内文本编辑。您可以使用IndexOf()
查找标签的偏移量INPUT
,然后再次查找value
或右尖括号,然后在所需位置插入所需的值。
设置好新字符串后,使用setText()
. 完毕。
HTMLDocument 有一个getElement方法,用于获取具有给定 id 属性的 javax.swing.text.Element。使用它来获取您的输入元素,然后调用
htmlDocument.setOuterHtml(
inputElement,
"<input id=\"foo\" value=\"" + escapeHtml(newValue) + "\">"
)
用新值替换您的 inputElement 的值。
请注意,我没有尝试过这个。让我们知道它是否有效!