JTextArea - 如何获取当前行的第一个索引?

时间:2014-10-22 07:37:27

标签: java swing jtextarea

假设我有JTextArea并且我想用特定文本替换当前行:

示例

123
123455
68967869
gh

现在我想替换当前光标现有行的文本。

因此,如果光标位于第3行,输出将为:

123
123455
replaced text
gh 

现在我有了这段代码。但它只是附加到当前行而不是当前行的第一个位置。

 jtextarea1.getDocument().insertString(jtextarea1.getCaretPosition(), "replaced text", null);

输出

123
123455
68967869replaced text//that's the problem
gh 

1 个答案:

答案 0 :(得分:4)

使用JTextArea API:

JTextArea txt = ...;
int caretOffset = txt.getCaretPosition();
int lineNumber = txt.getLineOfOffset(caretOffset);
int startOffset = txt.getLineStartOffset(lineNumber);
int endOffset = txt.getLineEndOffset(lineNumber);

txt.replaceRange("Replaced Text", startOffset, endOffset);