文字列バッファ内にテキストが保持されているJavaテキスト領域のカーソル位置を特定するにはどうすればよいですか?テキストエディタでバックスペース関数を実装しようとしています。 APIには、データの設定方法が記載されています。私はカーソルの位置を知るために、カーソルの画面上のグローバル座標ではなく、カーソルの位置を知る必要があります。文字列ベースのカーソル位置付け
誠にありがとうございます。
文字列バッファ内にテキストが保持されているJavaテキスト領域のカーソル位置を特定するにはどうすればよいですか?テキストエディタでバックスペース関数を実装しようとしています。 APIには、データの設定方法が記載されています。私はカーソルの位置を知るために、カーソルの画面上のグローバル座標ではなく、カーソルの位置を知る必要があります。文字列ベースのカーソル位置付け
誠にありがとうございます。
TextArea
には、キー入力イベントのためにKeyListeners
と書いて、TextArea
にある仮想カーソルを保持する必要があります。そのオフセットをStringBuffer
にマップしてください。魔法の方法はありません。
アドバイスありがとうございます。Jarrod Roberson –
スウィングJTextArea
を使用している場合は、JTextArea.getCaretPosition()
を使用してください。
AWT TextArea
を使用している場合は、Jarrod Robersonの回答を参照してください。
UIプログラミング(とそのことに関するプログラミング)はまだ私には新しく、私はSwingやAWTについて考えることさえ考えていませんでした。私はちょうどそれがやって学ぶことが有益であろうと言われ、ベアボーン手書きUIを試して取り組みました。入力いただきありがとうございます。それは私の方法で点灯します。 –
スイングは習得がより複雑ですが、AWTよりも柔軟で強力です。 AWT、Swing、およびSWTを比較すると[この記事](http://www.ibm.com/developerworks/grid/library/os-swingswt/)が役立つかもしれません。 –
あなたのために自分のために不便を感じました。私は心から感謝しています。 –
テキストをどのように正確に管理していますか?つまり、JTextAreaとStringBufferはどのように接続され、更新されていますか? AbstractDocument/AbstractDocument.Contentをサブクラス化していますか?コードを見せてくれますか? – DNA
私はJTextAreaを使用していません。それは私の質問に文脈を与えることでした。エディタのUIはJFrameから拡張されています。コードをどのように提示しますか?私は、この編集ウィンドウではかなり長いと言います。 –