- ベストアンサー
TextAreaのinsert
TextAreaで現在のキャレット位置に任意文字列が入るようにしたいのですが、たとえば、 textarea.insert( "aaa", textarea.getCaretPosition() ); という風にすると、現在位置ではないところに挿入されます。 どうやら、(現在のキャレット位置+行数)の位置に文字列が挿入されてしまうようです。 行数を割り出してgetCaretPosition()から引く方法も考えられるのですが、他によい方法はなにかありませんでしょうか。 よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
試してみたら、たしかに同じような結果になりました。 確信はないですけど、おそらくJava実行環境(JRE)の バグではないかと思います。 このように書けば回避できるようです。 int caret = textarea.getCaretPosition(); String text = textarea.getText(); text = text.substring(0, caret) + "aaa" + text.substring(caret); textarea.setText(text); 蛇足ですけど、 TextArea上で現在選択されているテキストを 置き換えるようにしたいなら、下のように書きます。 int start = textarea.getSelectionStart(); int end = textarea.getSelectionEnd(); String text = textarea.getText(); text = text.substring(0, start) + "aaa" + text.substring(end); textarea.setText(text);
お礼
できました!ありがとうございます!