【发布时间】:2009-12-28 12:54:34
【问题描述】:
我有一个由 JTextPane 显示的 HTML 文档,效果非常好。我有一些按钮,我使用 ActionListeners 与 ButtonModel 进行交互,我连接到状态链接 (#foo) 以处理简单的内部应用程序链接。
我的问题是我有一个 INPUT 元素,我需要更改它的“值”,以便框中的文本发生变化。
【问题讨论】:
-
你能添加你的html和java代码吗?
我有一个由 JTextPane 显示的 HTML 文档,效果非常好。我有一些按钮,我使用 ActionListeners 与 ButtonModel 进行交互,我连接到状态链接 (#foo) 以处理简单的内部应用程序链接。
我的问题是我有一个 INPUT 元素,我需要更改它的“值”,以便框中的文本发生变化。
【问题讨论】:
JTextPane 的getText() 和setText() 方法使您可以完全访问组件显示的文本。如果这恰好是 HTML,那么您正在处理的文本就是一个 HTML 文档,您需要像直接显示 HTML 一样更改该 HTML 文本。
如果您有一个INPUT 和type="text" 或默认类型,那么您将显示一个文本字段,其显示值由value= 属性控制。
为此,您需要对 JTextPane 的文本值进行一些代码内文本编辑。您可以使用IndexOf() 找到INPUT 标记的偏移量,然后再次找到value 或右尖括号,然后在您想要的位置插入所需的值。
当您设置好新字符串后,使用setText() 将其放回 JTextPane 中。完成。
【讨论】:
HTMLDocument 有一个getElement 方法来获取具有给定id 属性的javax.swing.text.Element。使用它来获取您的输入元素,然后调用
htmlDocument.setOuterHtml(
inputElement,
"<input id=\"foo\" value=\"" + escapeHtml(newValue) + "\">"
)
用新值替换您的 inputElement 的值。
注意,我还没有尝试过。让我们知道它是否有效!
【讨论】: