2009-12-27 62 views
0

我有一個JTextPane顯示的HTML文檔,它工作得非常好。我有一些按鈕,我使用ActionListeners與ButtonModel進行交互,並且鉤入狀態鏈接(#foo)來處理簡單的內部應用程序鏈接。在JTextPane中,如何更改輸入元素的值屬性?

我的問題是,我有一個INPUT元素,我需要更改框的文本更改的「值」。

+0

請問您可以添加您的html和java代碼嗎? – 2009-12-27 09:17:48

回答

1

JTextPane的getText()setText()方法使您可以完全訪問組件顯示的文本。如果這恰好是HTML,那麼您處理的文本是一個HTML文檔,您需要更改該HTML文本,就像直接顯示HTML一樣。

如果您有INPUTtype="text"或默認類型,則顯示一個文本字段,其顯示值由value=屬性控制。

要做到這一點,您需要對JTextPane的文本值進行一些代碼內編輯。您可以使用IndexOf()找到INPUT標記的偏移量,然後再次找到value或關閉的尖括號,然後將所需值插入所需的位置。

當您設置了新的字符串時,請使用setText()將它放回JTextPane中。完成。

1

HTMLDocument有一個getElement方法用於獲取具有給定id屬性的javax.swing.text.Element。用這個來獲得你的輸入元素,然後調用

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

用你的inputElement值替換新值。

請注意,我沒有試過這個。讓我們知道它是否有效!

相關問題