0

複数行をサポートするテキスト コンポーネントから特定の行を取得する必要があります。したがって、またはのいずれJTextAreaJTextPaneです。

1行目、2行目、または..などを取得するには? たとえば、line3以下のテキストから取得します

line1
line2
line3
line4

また、一部の行に別の値を設定することは可能ですか? たとえば。lineNewの代わりに設定line2

line1
lineNew
line3
line4

何か方法はありますか?

4

4 に答える 4

2

内のテキストを取得するには、を返すメソッドをJTextComponent使用します。getText()String

次に、行を取得するために、文字列を で分割します\n

JTextArea txt = new JTextArea("line1\nline2\nline3\nline4");
String s = txt.getText();
String[] lines = s.split("\n");
// now to access the second line, use lines[1]

テキストを変更したい場合は、setText(String)メソッドを使用できます。

txt.setText("something else");

insert(String,int)append(String)、 などのテキストを変更するために使用できる他の方法もいくつかありますreplaceRange(String,int,int)。これらはすべてjavadocsに記載されています。

于 2012-06-11T16:36:45.833 に答える
2

JTextArea#replaceRange特定の行を置き換えるために使用できます。

特定の行を取得することについては、完全にはわかりませんが、JTextArea#getLineCountJTextArea#getLineStartOffsetJtextArea#getLineEndOffsetを使用すると、テキストから特定の行をすばやく抽出できるはずです。または、tskuzzy が既に提案したように、完全なテキストを取得して自分で分割します

于 2012-06-11T16:38:42.120 に答える
1

1行目、2行目、または..などを取得するには?

JTextArea/JTextPaneによってJTextArea.getText()/からテキストを取得しますJTextPane.getText()。テキストを文字列として取得したら、区切り文字として改行文字を使用してテキストを分割することにより、異なる行を取得できます。

于 2012-06-11T16:38:43.037 に答える
0
JTextArea jText = new JTextArea("line1\nline2\nline3\nline4");

String temp = jText.getText();

String[] tempArr = temp.split("\n");

// getText へのメソッド

public String getText(int lineNos){

             return Str[lineNos].getText();

}

// setText へのメソッド

public void setText(int lineNos){

            Str[lineNos].setText("Hello");   // Can also use Scanner here

}
于 2012-06-11T16:47:43.517 に答える