【问题标题】:In a JTextPane, how can I change the value attribute of an input element?在 JTextPane 中,如何更改输入元素的 value 属性?
【发布时间】:2009-12-28 12:54:34
【问题描述】:

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

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

【问题讨论】:

  • 你能添加你的html和java代码吗?

标签: java html swing jtextpane


【解决方案1】:

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

如果您有一个INPUTtype="text" 或默认类型,那么您将显示一个文本字段,其显示值由value= 属性控制。

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

当您设置好新字符串后,使用setText() 将其放回 JTextPane 中。完成。

【讨论】:

    【解决方案2】:

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

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

    用新值替换您的 inputElement 的值。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-26
      • 2020-07-18
      • 1970-01-01
      • 2011-07-24
      • 2015-04-25
      • 2015-01-03
      • 2021-08-25
      • 1970-01-01
      相关资源
      最近更新 更多