0

非常にうまく機能する JTextPane によって表示される HTML ドキュメントがあります。ButtonModel の ActionListeners を使用して操作するボタンがいくつかあり、状態リンク (#foo) にフックして単純な内部アプリ リンクを処理します。

私の問題は、「値」を変更する必要がある INPUT 要素があるため、ボックス内のテキストが変更されることです。

4

2 に答える 2

1

HTMLDocument には、特定の id 属性を持つ javax.swing.text.Element を取得するためのgetElementメソッドがあります。これを使用して入力要素を取得し、呼び出します

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

inputElement の値を新しい値に置き換えます。

注、私はこれを試していません。動作するかどうかお知らせください!

于 2009-12-28T04:54:34.100 に答える
1

JTextPane のgetText()およびsetText()メソッドを使用すると、コンポーネントによって表示されるテキストに完全にアクセスできます。それがたまたま HTML である場合、扱っているテキストは HTML ドキュメントであり、HTML を直接表示する場合と同様に、その HTML テキストを変更する必要があります。

INPUTwithまたは default タイプの場合はtype="text"、テキスト フィールドを表示し、その表示値はvalue=属性によって制御されます。

そのためには、JTextPane のテキスト値のコード内テキスト編集を行う必要があります。を使用IndexOf()してタグのオフセットを見つけ、INPUTもう一度valueまたは閉じ山かっこを見つけて、目的の位置に目的の値を挿入できます。

新しい String をすべてセットアップしたら、 を使用して JTextPane に戻しますsetText()。終わり。

于 2009-12-27T09:47:28.847 に答える