2

JEditorPane単語をクリックしてその定義を取得するという考えと同様に、特定の単語の内部でハイパーリンクを使用しようとしています。単語がエディター ペインに入力されると、プログラムはそれらをリストと照合し、リストされた単語を<a href="..." >some word</a>タグで置き換えます。

私の問題は、単語がタグに置き換えられた後、タグ内にあるテキストへの次のキーストロークの追加をエディターペインで停止できないことです。<a>タグから抜け出して、通常どおり入力を再開するにはどうすればよいですか?

はい、ハイパーリンク イベントは、エディター ペインが編集できない場合にのみ発生することを認識しています。私はマウスイベントでそれを回避しています。

4

3 に答える 3

5

これはhttp://java-sl.com/tip_autocreate_links.htmlが役立つかもしれません

于 2012-08-20T10:45:50.837 に答える
0

私は JEditorPanes を自分で使用したことはありませんが、カーソル位置が挿入されたタグの外側ではなく内側にあるようです。したがって、可能な解決策は、単語を置き換えた後、カーソルをタグ位置の前に移動することです。

于 2012-08-20T10:45:17.330 に答える
0

setCaretPositionJEdi​​torPane のメソッドで遊んでください。タグの末尾の位置を取得します。このようなことを試してください:

HTMLDocument document = (HTMLDocument)editor.getDocument();
 int caretPos = editor.getCaretPosition();

 Element elem = document.getParagraphElement(caretPos);

 int pos = elem.getEndOffset();
 editor.setCaretPosition(pos)

ドキュメントの長さを確認し、キャレットを悪い位置に設定しないように注意してください。

また、wysiwg Javaエディターのソースコードを見ると役立ちます(shefなど)

于 2012-08-21T00:01:37.513 に答える