I'm having an issue with my JavaFX application. Problem is that I can't use append function, only setText. Why this is a problem is because auto scroll is not working without append. What is the way to update or auto-scroll my TextArea each time new text appears?
JavaFX component TextArea
inherits the method setText(String value)
from TextInputControl
and its documentations sais:
Sets the value of the property text.
which means the text is set as a new one. To just insert a new line (update, append) the text, you have to use the method appendText(String value)
inherited as well.
Appends a sequence of characters to the content.
Both of the input String value
's must be not null
.
To scroll to the end, you have to implement a listener which is triggered by any text change (setText()
, appendText()
) and perform the scroll using the method setScrollTop(double value)
. The parameter double value
is the number of pixels by which the content is vertically scrolled - using the largest possible double value Double.MAX_VALUE
makes it scroll to the end.
textArea.textProperty().addListener((observable, oldValue, newValue) ->
textArea.setScrollTop(Double.MAX_VALUE);
});