2012-02-16 18 views
1

文字列バッファ内にテキストが保持されているJavaテキスト領域のカーソル位置を特定するにはどうすればよいですか?テキストエディタでバックスペース関数を実装しようとしています。 APIには、データの設定方法が記載されています。私はカーソルの位置を知るために、カーソルの画面上のグローバル座標ではなく、カーソルの位置を知る必要があります。文字列ベースのカーソル位置付け

誠にありがとうございます。

+0

テキストをどのように正確に管理していますか?つまり、JTextAreaとStringBufferはどのように接続され、更新されていますか? AbstractDocument/AbstractDocument.Contentをサブクラス化していますか?コードを見せてくれますか? – DNA

+0

私はJTextAreaを使用していません。それは私の質問に文脈を与えることでした。エディタのUIはJFrameから拡張されています。コードをどのように提示しますか?私は、この編集ウィンドウではかなり長いと言います。 –

答えて

2

TextAreaには、キー入力イベントのためにKeyListenersと書いて、TextAreaにある仮想カーソルを保持する必要があります。そのオフセットをStringBufferにマップしてください。魔法の方法はありません。

+0

アドバイスありがとうございます。Jarrod Roberson –

1

スウィングJTextAreaを使用している場合は、JTextArea.getCaretPosition()を使用してください。

AWT TextAreaを使用している場合は、Jarrod Robersonの回答を参照してください。

+0

UIプログラミング(とそのことに関するプログラミング)はまだ私には新しく、私はSwingやAWTについて考えることさえ考えていませんでした。私はちょうどそれがやって学ぶことが有益であろうと言われ、ベアボーン手書きUIを試して取り組みました。入力いただきありがとうございます。それは私の方法で点灯します。 –

+0

スイングは習得がより複雑ですが、AWTよりも柔軟で強力です。 AWT、Swing、およびSWTを比較すると[この記事](http://www.ibm.com/developerworks/grid/library/os-swingswt/)が役立つかもしれません。 –

+0

あなたのために自分のために不便を感じました。私は心から感謝しています。 –

関連する問題