JavaFX的:文本光标移回新文本的第一行(JavaFX: TextArea cursor move

2019-09-27 13:14发布

我有一个艰难的时间与TextArea的指针,它一直被设定在第一线位置0,添加新的文本到后Textarea

问题背景

我有一个Textarea ,当我添加足够的文本滚动条出现下面放旧的新的文本。 直到这里的一切都OK,不过,将光标放在TextArea回来时,我有频繁插入到成为恼人的顶部TextArea

这里是我每次添加新行:

void writeLog(String str) {
    textArea.setText(textArea.getText() + str + "\n");
}

如何停止在光标TextArea从每个插入后回到第一线?

Answer 1:

如果要追加到结束TextArea ,您可以使用appendText ,而不是setText

textArea.appendText(str + "\n");

这将自动滚动至底部,并插入符号放置到文本的末尾。


注:一些背景知识。

在的代码TextInputControlappendText将调用insertTextinsertText(getLength(), text); 因此textArea.appendText(str + "\n");textArea.insertText(textArea.getLength(), str + "\n"); 是相等的。 insertText将设置插入符位置insertationPosition + insertedText.getLength()这就是为什么插入符号移动到最后。



文章来源: JavaFX: TextArea cursor moves back to the first line on new text