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

whi*_*rue 2 java swing jtextarea

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

例子

123
123455
68967869
gh
Run Code Online (Sandbox Code Playgroud)

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

所以如果光标在第三行,输出将是:

123
123455
replaced text
gh 
Run Code Online (Sandbox Code Playgroud)

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

 jtextarea1.getDocument().insertString(jtextarea1.getCaretPosition(), "replaced text", null);
Run Code Online (Sandbox Code Playgroud)

输出

123
123455
68967869replaced text//that's the problem
gh 
Run Code Online (Sandbox Code Playgroud)

Eng*_*uad 5

使用JTextAreaAPI​​:

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);
Run Code Online (Sandbox Code Playgroud)