2

ここに挑戦的な質問があります!

まず、問題の解決策をどのように実装するかについて、私のシナリオを説明します。

ログファイルを読み取り、JTextAreaに表示しています。ログファイルはcp037文字でコード化されています。ログファイルから各ファイルをバイトストリームまたはバイト配列として読み取り、表示していました。とにかく、cp037文字コードでJTextAreaにテキストを正しく表示することができました。

これで、ユーザーはJTextAreaで文字のセットを選択できます。私が欲しいのは、選択されたテキストの前にある、最も近い特殊文字'+'(cp037の文字コードは4E)からの、ユーザーが選択したテキストの最初の文字の位置です。この文字は、JTextAreaのいくつかの場所で発生する可能性があります。

簡単な文章では、ユーザーが選択したテキストの前に発生するはずのニアセット「+」からの(ユーザーが選択したテキストの)最初の文字の場所が必要です。

PS:cp037は、IBMによって作成され、IBMメインフレームに使用される文字エンコード方式の一種です。

質問が明確でない場合は、遠慮なく質問してください...:->

4

2 に答える 2

3

JTextComponentにはメソッドがあります

public int getSelectionStart()

選択したテキストの開始位置を返します。空のドキュメントの場合は0を返し、選択がない場合はドットの値を返します。

public String getSelectedText()

このTextComponentに含まれる選択されたテキストを返します。選択がnullまたはドキュメントが空の場合、nullを返します。

于 2010-05-28T13:47:44.307 に答える
2

の2つの方法getSelectionEnd()が役立ちます。getSelectionStart()JTextComponent

String firstSelectedChar;
String text = textArea.getText();
int selectionStart = textArea.getSelectionStart();
firstSelectedChar = text.substring(selectionStart, selectionStart + 1);

それはあなたが必要とするものに似ているかもしれません。

于 2010-05-28T13:44:12.880 に答える