我有一个艰难的时间与TextArea
的指针,它一直被设定在第一线位置0,添加新的文本到后Textarea
。
问题背景
我有一个Textarea
,当我添加足够的文本滚动条出现下面放旧的新的文本。 直到这里的一切都OK,不过,将光标放在TextArea
回来时,我有频繁插入到成为恼人的顶部TextArea
。
这里是我每次添加新行:
void writeLog(String str) {
textArea.setText(textArea.getText() + str + "\n");
}
如何停止在光标TextArea
从每个插入后回到第一线?
如果要追加到结束TextArea
,您可以使用appendText
,而不是setText
:
textArea.appendText(str + "\n");
这将自动滚动至底部,并插入符号放置到文本的末尾。
注:一些背景知识。
在的代码TextInputControl
, appendText
将调用insertText
如insertText(getLength(), text);
因此textArea.appendText(str + "\n");
和textArea.insertText(textArea.getLength(), str + "\n");
是相等的。 insertText
将设置插入符位置insertationPosition + insertedText.getLength()
这就是为什么插入符号移动到最后。