我的JavaFX应用程序出现问题。问题是我不能使用append函数,只能使用setText。为什么这是一个问题是因为自动滚动在没有附加的情况下无法正常工作。每次出现新文本时,更新或自动滚动TextArea的方法是什么?
答案 0 :(得分:1)
JavaFX组件TextArea
从setText(String value)
继承方法TextInputControl
及其文档sais:
设置属性文本的值。
表示文本设置为新文本。要仅插入新行(更新,追加)文本,您必须使用继承的方法appendText(String value)
。
在内容中添加一系列字符。
输入String value
&#39}必须不是null
。
要滚动到结尾,您必须实现一个由任何文本更改(setText()
,appendText()
)触发的侦听器,并使用方法setScrollTop(double value)
执行滚动。参数double value
是内容垂直滚动的像素数 - 使用最大可能的双值Double.MAX_VALUE
使其滚动到结尾。
textArea.textProperty().addListener((observable, oldValue, newValue) ->
textArea.setScrollTop(Double.MAX_VALUE);
});