开发者

In a JTextPane, how can I change the value attribute of an input element?

I have an HTML document being displayed by a JTextPane that works very nicely. I have some buttons that I interact with using ActionListeners for a ButtonModel, 开发者_Python百科and I hook into state links (#foo) to handle simple internal app links.

My problem is that I have a INPUT element that I need to change the "value" of so the text changes in the box.


JTextPane's getText()and setText() methods give you full access to the text displayed by the component. If that happens to be HTML, then the text you're dealing with is a HTML document and you need to change that HTML text just as you would if you were displaying HTML directly.

If you have an INPUT with type="text" or default type, then you display a text field, and its displayed value is controlled by the value= attribute.

To do that, you need to do some in-code text editing of the text value of your JTextPane. You can use IndexOf() to find the offset of your INPUT tag, then again to find the value or the closing angle bracket, and then you insert your desired value at the location you wanted.

When you have your new String all set up, put it back in the JTextPane using setText(). Done.


HTMLDocument has a getElement method for getting the javax.swing.text.Element with a given id attribute. Use this to get your input element, then call

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

to replace the value of your inputElement with the new value.

Note, I haven't tried this. Let us know if it works!

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜