2014-10-22 54 views
0

假設我有一個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 

回答

3

使用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

相關問題