2017-05-10 15 views
1

TextAreaのカーソルでは苦労していますが、Textareaに新しいテキストを追加した後、最初の行で0の位置に設定され続けます。JavaFX:TextAreaカーソルが新しいテキストの最初の行に移動します

問題の背景

は、私は十分なテキストを追加したときに、スクロールバーは、古いものの下に新しいテキストを配置するように見える、Textareaを持っています。ここまではすべてOKですが、TextAreaのカーソルが先頭に戻ります。TextAreaに頻繁に挿入すると迷惑になります。ここで

は、私は毎回新しい行を追加する方法です:

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

は、私は、各挿入後に戻って最初の行に行くからTextAreaにカーソルをどのように停止することができますか?あなたがTextAreaの最後に追加したい場合は

+1

このソリューションを試す:http://stackoverflow.com/questions/29895597/javafx-after-setting-text-in-textarea-setting-scroll-to-bottom-in-separate-th – JCoder

答えて

1

あなたはappendTextではなくsetText使用することができます。これは、自動的に一番下までスクロールし、テキストの最後にキャレットを配置します

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


注:少し背景。等しいinsertTexttextArea.appendText(str + "\n");従ってinsertText(getLength(), text);ようtextArea.insertText(textArea.getLength(), str + "\n");TextInputControlのコードで

appendTextを呼び出します。 insertTextは、キャレットの位置をinsertationPosition + insertedText.getLength()と設定します。そのため、キャレットは最後まで移動します。

関連する問題