0

我有一个由 JTextPane 显示的 HTML 文档,效果很好。我有一些按钮,我使用 ActionListeners 与 ButtonModel 进行交互,我连接到状态链接 (#foo) 以处理简单的内部应用程序链接。

我的问题是我有一个 INPUT 元素,我需要更改它的“值”,以便框中的文本发生变化。

4

2 回答 2

1

JTextPanegetText()setText()方法使您可以完全访问组件显示的文本。如果这恰好是 HTML,那么您正在处理的文本就是一个 HTML 文档,您需要更改该 HTML 文本,就像您直接显示 HTML 一样。

如果您有INPUTwithtype="text"或 default 类型,则显示一个文本字段,其显示值由value=属性控制。

为此,您需要对 JTextPane 的文本值进行一些代码内文本编辑。您可以使用IndexOf()查找标签的偏移量INPUT,然后再次查找value或右尖括号,然后在所需位置插入所需的值。

设置好新字符串后,使用setText(). 完毕。

于 2009-12-27T09:47:28.847 回答
1

HTMLDocument 有一个getElement方法,用于获取具有给定 id 属性的 javax.swing.text.Element。使用它来获取您的输入元素,然后调用

htmlDocument.setOuterHtml(
    inputElement, 
    "<input id=\"foo\" value=\"" + escapeHtml(newValue) + "\">"
)

用新值替换您的 inputElement 的值。

请注意,我没有尝试过这个。让我们知道它是否有效!

于 2009-12-28T04:54:34.100 回答