JTextArea - 如何获得当前行的第一个索引?
问题描述:
假设我有一个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
答
使用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);
为什么不链接到['JTextArea'](http://docs.oracle.com/javase/8 /docs/api/javax/swing/JTextArea.html)(最新文档)? – 2014-10-22 07:50:03
谢谢,但这给了我第二行错误 – 2014-10-22 07:50:02
@whiletrue修复了错误。 – 2014-10-22 07:50:41