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); 
+0

为什么不链接到['JTextArea'](http://docs.oracle.com/javase/8 /docs/api/javax/swing/JTextArea.html)(最新文档)? – 2014-10-22 07:50:03

+0

谢谢,但这给了我第二行错误 – 2014-10-22 07:50:02

+0

@whiletrue修复了错误。 – 2014-10-22 07:50:41