假设我有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
答案 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);