2017-05-10 9 views
1

TextArea의 커서를 사용하는 데 어려움을 겪고 있으며, Textarea에 새 텍스트를 추가 한 후 첫 줄의 위치 0으로 계속 설정됩니다.JavaFX : TextArea 커서가 새 텍스트의 첫 번째 줄로 이동합니다.

문제의 배경

나는 내가 충분히 텍스트를 추가 할 때 스크롤 바는 이전 아래에 새로운 텍스트를 넣어 표시하는 Textarea 있습니다. 여기까지는 모든 것이 정상이지만 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()으로 설정하므로 캐럿이 끝까지 이동합니다.