2016-10-15 3 views
-2

テキストエディタを作成しています。下の画像のように、選択した行を数えたいと思います。JTextArea - 選択した行を数えます。

これまで作成したインターフェイスです。例えば

enter image description here

これら二つの行が選択されている場合、私は変数に(この場合は2)選択された行の数を格納する方法を必要とします。それを行う方法はありますか?

ご覧になるコードが必要な場合は、追加します。

+0

これは私が提案したものに近いものではありません!選択したテキストの開始/終了オフセットではなく、「行番号」を減算することをお勧めします。どこでメソッドを "オフセット"に変更しましたか? – camickr

+2

* "JTextField count selected rows" *テキストフィールドは1行しかないので、選択された行の数は0または1になります。実際には 'JTextArea'を期待していますが、 [mcve]が掲示されているなら知識に変わることができます。 MCVEを将来のquestiosnに投稿してください。 –

+0

@AndrewThompsonはもう一度タイトルをチェックしてください。 "JTextField"ではなく "JTextArea"と書かれています。 – Linksx

答えて

3

Text UtilitiesにあるgetLineAtCaret()メソッドを確認してください。これは、キャレットの行番号を取得します(ここでは役立たないでしょう)。

オフセットをパラメータとして受け取るようにコードを変更する必要があります。次に、テキストコンポーネントのgetSelectionStart()getSelectionEnd()の値を渡して、これらの値を使用して行番号を返します。そして、それぞれの行番号が分かれば、終了行番号から開始行番号を引いて、選択した行数を得ることができます。

また、Text Component Line Numberブログエントリで、あなたのエディタで使用する行番号コンポーネントを確認することもできます。

+0

あなたの言ったことをどのように実装するか考えていました。正しいかどうかを確認するためにEDITをチェックしてください。ほとんどの場合、適切な数の行が選択されますが、誤った値が得られることがあります。たとえば、4行を選択すると、3行または5行が選択されていますが、必ずしもそうではありません。 – Linksx

関連する問題