テキストエディタを作成しています。下の画像のように、選択した行を数えたいと思います。JTextArea - 選択した行を数えます。
これまで作成したインターフェイスです。例えば
これら二つの行が選択されている場合、私は変数に(この場合は2)選択された行の数を格納する方法を必要とします。それを行う方法はありますか?
ご覧になるコードが必要な場合は、追加します。
テキストエディタを作成しています。下の画像のように、選択した行を数えたいと思います。JTextArea - 選択した行を数えます。
これまで作成したインターフェイスです。例えば
これら二つの行が選択されている場合、私は変数に(この場合は2)選択された行の数を格納する方法を必要とします。それを行う方法はありますか?
ご覧になるコードが必要な場合は、追加します。
Text UtilitiesにあるgetLineAtCaret()
メソッドを確認してください。これは、キャレットの行番号を取得します(ここでは役立たないでしょう)。
オフセットをパラメータとして受け取るようにコードを変更する必要があります。次に、テキストコンポーネントのgetSelectionStart()
とgetSelectionEnd()
の値を渡して、これらの値を使用して行番号を返します。そして、それぞれの行番号が分かれば、終了行番号から開始行番号を引いて、選択した行数を得ることができます。
また、Text Component Line Number
ブログエントリで、あなたのエディタで使用する行番号コンポーネントを確認することもできます。
あなたの言ったことをどのように実装するか考えていました。正しいかどうかを確認するためにEDITをチェックしてください。ほとんどの場合、適切な数の行が選択されますが、誤った値が得られることがあります。たとえば、4行を選択すると、3行または5行が選択されていますが、必ずしもそうではありません。 – Linksx
これは私が提案したものに近いものではありません!選択したテキストの開始/終了オフセットではなく、「行番号」を減算することをお勧めします。どこでメソッドを "オフセット"に変更しましたか? – camickr
* "JTextField count selected rows" *テキストフィールドは1行しかないので、選択された行の数は0または1になります。実際には 'JTextArea'を期待していますが、 [mcve]が掲示されているなら知識に変わることができます。 MCVEを将来のquestiosnに投稿してください。 –
@AndrewThompsonはもう一度タイトルをチェックしてください。 "JTextField"ではなく "JTextArea"と書かれています。 – Linksx