在JTextPane中,如何更改输入元素的值属性?

问题描述:

我有一个JTextPane显示的HTML文档,它工作得非常好。我有一些按钮,我使用ActionListeners与ButtonModel进行交互,并且钩入状态链接(#foo)来处理简单的内部应用程序链接。在JTextPane中,如何更改输入元素的值属性?

我的问题是,我有一个INPUT元素,我需要更改框的文本更改的“值”。

+0

请问您可以添加您的html和java代码吗? – 2009-12-27 09:17:48

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

如果您有INPUTtype="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值替换新值。

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